Nginx の末尾のスラッシュが欠落しているため、プロキシの背後にある間違った URL にリダイレクトされます

Nginx の末尾のスラッシュが欠落しているため、プロキシの背後にある間違った URL にリダイレクトされます

私たちは、nginx プロキシの背後にある nginx ウェブサーバーを使用しています。サブパスを参照しようとすると、nginx バックエンド ウェブサーバー (something.example.local) が、予想どおり、URL の後ろに末尾のスラッシュを追加します (301 リダイレクト)。問題は、フロントエンド プロキシによって公開されておらず、マスクされることを意図していない間違った URL にリダイレクトされることです。この問題を解決する最適な解決策は何ですか?

(私は次のような多くの提案を試しましたが、どれもうまくいきませんでした:

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/ 絶対リダイレクトのオフ、プロキシリダイレクト設定、バックエンド サーバーのルールの書き換え)

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

関連情報