に Swagger を搭載したアプリケーションがありますlocalhost:8080/swagger/
。
localhost:80
実際の Swagger URL へのリダイレクトが必要なのでlocalhost:8080/swagger/
、Nginx リバース プロキシを設定します。
server {
listen 80;
server_name=_;
location / {
proxy_pass http://localhost:8080/swagger/;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
入力するとlocalhost:80
301 コードを受信し、 にリダイレクトされますlocalhost:80/swagger/index.html
。 しかし、ポート が必要なのです8080
が、なぜ nginx は proxy_pass のポートを無視するのでしょうか?
答え1
ポート 80 でリッスンするサーバー ブロックの listen ディレクティブを変更して、ポート番号も含めることができます。
listen 80 default_server;
これにより、Nginx はポート 80 でリッスンし、URL のポート番号を保持したままトラフィックを http://localhost:8080/swagger/ にルーティングします。