¿Cómo hago múltiples servidores proxy inversos de nginx?

¿Cómo hago múltiples servidores proxy inversos de nginx?

quiero conectarmeejemplo.com/api/buyyejemplo.com/api/sella un sitio específico a través de proxy inverso.

Entonces estoy tratando de conectarme a travéslocalhost/api/comprarylocalhost/api/vendercon nginx.

Configuré el archivo de configuración como se muestra a continuación.

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;
            }

}

Pero si conecto /api/buy y /api/sell, aparece un error 404 no encontrado.

Puedes configurarlo usando un puerto diferente.

Quiero configurarlo en el mismo puerto, pero ¿hay alguna manera?

Respuesta1

Cuando la ubicación se especifica mediante una expresión regular y también dentro de ubicaciones con nombre.

En estos casos, proxy_pass se debe especificar sin URI.

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

información relacionada