NGINX proxy_pass の問題

NGINX proxy_pass の問題

免責事項:

スタック オーバーフローがコードの質問を意味することに気付く前に、スタック オーバーフローに関する同様の質問を開いたことがあります...

私の問題:

SSH トンネル経由で nginx サーバーに接続された Web サービスにアクセスしようとしています。サーバーに SSH し、トンネル ポートを curl すると、問題なく動作します。次の手順は、ポートを指定してそのサービスにアクセスできるように、nginx 構成で proxy_pass を実行することです。次の構成を使用して、うまくいったと思います。

location ~ ^/test/([0-9]+)/ {
    #allow our.ip/32;
    proxy_pass http://127.0.0.1:$1/;
}

インデックスがロードされると、login.php というページ (存在し、curl localhost:port/login.php を使用してアクセスできます) にリダイレクトしようとします。調査した後、location と proxy_pass の両方からスラッシュを削除するという解決策を思いつきました。次のようになります。

location ~ ^/test/([0-9]+) {
    #allow our.ip/32;
    proxy_pass http://127.0.0.1:$1;
}

これはほとんどの例で見られるものですが、動作しません。502 が表示されるだけで、その理由はわかりません。

編集

これはリクエストからの nginx エラー ログです:

2021/01/11 14:21:49 [error] 88542#88542: *19093 connect() failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: my.server.address, request: "GET /test/1480/ HTTP/2.0", upstream: "http://127.0.0.1:1480/test/1480/", host: "my.server.address"

「/test/」をリモートホストに渡すべきではありません...

関連情報