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