
私は http から https に 307 リダイレクトする Nginx 構成を持っています。http に接続し、POST リクエストを介してデータを送信する既存のクライアント アプリケーションがあります。クライアントは HttpWebRequest を使用する .Net サービスです。301 リダイレクトを使用するだけでは、リクエストから POST データが削除されます。
ローカル テスト環境では 307 リダイレクトが機能していますが、運用サーバーにデプロイするとリダイレクト メッセージが破損し、クライアントが例外をスローします。
これは私のテスト環境で得られた動作応答です:
これが本番環境から得たものです
パケットの見た目が異なっていることがわかりますが、応答が異なる原因は何でしょうか? nginx のバージョンが古いのでしょうか?
答え1
1.1.16 より前のバージョンの nginx では、307 応答を返すことが適切にサポートされていませんでした。
変更ログの関連部分には次のように記載されています。
Changes with nginx 1.1.16 29 Feb 2012
*) Feature: the "return" and "error_page" directives can now be used to
return 307 redirections.
本番サーバー(および開発サーバー)を持参することをお勧めします。最新のこの機能が必要な場合、nginx 1.0.5 は現時点では非常に古いです。