2017-01-27 34 views
2

80でリッスンしているNginxサーバーがDockerコンテナ内で実行されています。Nginx:リダイレクト時にポートを保持する

Nginxの設定では、特定の状況で静的なページにリダイレクトする必要があります。

rewrite^/foobar.html redirect; 

ユーザーがドッキングウィンドウのコマンドラインを使用して、任意のポートを指定してコンテナを実行することができます(参考のために、彼女はポート8000にコンテナを公開することができ、内部nginxのはまだ80を使用します)。

NginxがURLをリダイレクトすると、Dockerで使用されているものを使用する代わりに、Nginxによって内部でで使用されたポートに置き換えられます。

私は、ヘッダの束を設定しようとしましたが、彼らは助けにはならなかった。

proxy_set_header X-Forwarded-Host $host:$server_port; 
proxy_set_header X-Forwarded-Server $host; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
proxy_pass http://app_server; 

rewrite^/foobar.html redirect; 

それはまだ80にリダイレクトします。

Nginxにユーザーが使用するポートを保持するように指示するにはどうすればよいですか?

答えて

4

だから、私は解決策を見つけ、次のように、私は、リダイレクトを指定することができます。

rewrite^$scheme://$http_host/foobar.html redirect; 

これは、ポートを保持します。

関連する問題