
我有一個 Nginx 配置,307 從 http 重定向到 https。現有的客戶端應用程式連接到 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 此時已經很舊了。