Как создать несколько обратных прокси-серверов nginx?

Как создать несколько обратных прокси-серверов nginx?

Я хочу подключитьсяexample.com/api/buyиexample.com/api/sellна определенный сайт через обратный прокси.

Поэтому я пытаюсь подключиться черезлокальный хост/api/купитьилокальный хост/api/продажас nginx.

Я настроил файл конфигурации, как показано ниже.

server {
    listen       80;
    server_name  localhost;



    #access_log  logs/host.access.log  main;

    location / {
        root   html;
        index  index.html index.htm;
    }


    location = /api/buy {
    return 302 /api/buy/;
    }

        location /api/buy/ {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header HOST $host;
            proxy_set_header X-NginX-Proxy true;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            proxy_pass http://example.com:80/;
            proxy_redirect off;
            }

    location = /api/sell {
    return 302 /api/sell/;
    }

        location /api/sell/ {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header HOST $host;
            proxy_set_header X-NginX-Proxy true;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            proxy_pass http://example.com:82/;
            proxy_redirect off;
            }

}

Но если я подключаю /api/buy и /api/sell, я получаю ошибку 404 «Не найдено».

Вы можете настроить его, используя другой порт.

Я хочу установить тот же порт, но есть ли способ?

решение1

Когда местоположение указано с помощью регулярного выражения, а также внутри именованных местоположений.

В этих случаях proxy_pass следует указывать без URI.

http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass

Связанный контент