![NGINX proxy_pass の問題](https://rvso.com/image/762121/NGINX%20proxy_pass%20%E3%81%AE%E5%95%8F%E9%A1%8C.png)
免責事項:
スタック オーバーフローがコードの質問を意味することに気付く前に、スタック オーバーフローに関する同様の質問を開いたことがあります...
私の問題:
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/」をリモートホストに渡すべきではありません...