Nginx fehlender abschließender Schrägstrich leitet zur falschen URL hinter dem Proxy weiter

Nginx fehlender abschließender Schrägstrich leitet zur falschen URL hinter dem Proxy weiter

Wir verwenden einen Nginx-Webserver hinter einem Nginx-Proxy. Wenn ich versuche, einen Unterpfad zu durchsuchen, fügt der Nginx-Backend-Webserver (etwas.Beispiel.Lokal) wie erwartet einen abschließenden Schrägstrich hinter die URL (301-Umleitung) an. Mein Problem ist, dass er auf die falsche URL umleitet, die vom Frontend-Proxy nicht veröffentlicht wird und maskiert werden soll. Was ist die beste Lösung, um dieses Problem zu beheben?

(Ich habe viele Vorschläge wie diese ausprobiert, aber keiner davon hat funktioniert:

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/ absolute Umleitung aus, Proxy-Umleitungskonfigurationen, Regeln auf dem Backend-Server neu schreiben)

Nginx „Frontend“-Proxy-Konfiguration:

        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

verwandte Informationen