Usamos un servidor web nginx detrás de un proxy nginx. Cuando intento explorar una subruta, el servidor web backend de nginx (algo.ejemplo.local) agrega una barra diagonal detrás de la URL (redireccionamiento 301), como se esperaba. Mi problema es que redirige a la URL incorrecta, que no está publicada por el proxy de interfaz y debe estar enmascarada. ¿Cuál es la mejor solución para eliminar este problema?
(Probé muchas sugerencias como estas, pero ninguna funcionó:
https://serverfault.com/questions/1043091/unexpected-301-redirects-from-nginx-when-behind-nginx-reverse-proxy https://bluegrid.io/edu/how-to-add-a-trailing-slash-on-urls-in-nginx/ https://stackoverflow.com/questions/22759345/nginx-trailing-slash-in-proxy-pass-url https://www.shellhacks.com/nginx-proxy_pass- without-trailing-slash/ redireccionamiento absoluto desactivado, configuraciones de proxyredirect, reglas de reescritura en el servidor backend)
Configuración del proxy "frontal" de Nginx:
location /goodpath/ {
proxy_pass https://something.example.local/wrongpath/;
proxy_set_header Host example.com:$server_port;
proxy_set_header X-Real-IP $remote_addr;
}
# curl -I https://example.com/goodpath
HTTP/1.1 301 Moved Permanently
server: nginx
date: Thu, 31 Aug 2023 13:29:25 GMT
content-type: text/html
content-length: 162
location: **https://example.com/goodpath/**
$ curl -I **https://example.com/goodpath/subpath**
HTTP/1.1 301 Moved Permanently
server: nginx
date: Thu, 31 Aug 2023 13:30:23 GMT
content-type: text/html
content-length: 162
location: **https://example.com/*wrongpath*/subpath/**
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
strict-transport-security: max-age=31536000; includeSubDomains