如何解決Nginx請求轉(zhuǎn)發(fā)將POST變?yōu)镚ET問題
先說問題
我配置了Nginx代理,目的是將請求轉(zhuǎn)發(fā)到指定的后端,對于普通的JSON數(shù)據(jù),沒有什么問題。
但是有文件上傳的就不一樣了,我需要指定到第3方的地址。
然而常規(guī)的配置完成后,Nginx實際的轉(zhuǎn)發(fā)動作改變了我的請求方式
location /abd/def/uploadFile/ {
proxy_pass http://x.com:y/abc/def/uploadFiles;
}
導致第3方服務器報錯如圖

解決方法
Nginx 配置 307
其作用如下:
1.return 307 是 Nginx 配置中的一個指令,用于返回一個指定的 HTTP 狀態(tài)碼,并重定向到客戶端發(fā)出的相同請求地址。當使用 return 307 > 時,Nginx 將會保留客戶端發(fā)出的原始請求方法和請求體,并以 307 Temporary Redirect 的狀態(tài)碼將請求重定向回客戶端。
2.307 狀態(tài)碼表示臨時重定向,客戶端應該繼續(xù)使用原始的請求方式和請求體重新發(fā)送請求。與 302 Found 和 303 See Other 不同的是,307 狀態(tài)碼要求客戶端不要更改請求方式(例如,POST 轉(zhuǎn)為 GET),并且要保持請求的完整性。
3.在某些情況下,您可能希望通過 return 307 來實現(xiàn)臨時重定向,同時保留原始請求方式和請求體。這可以用于讓客戶端重新發(fā)送相同請求,而不會丟失任何數(shù)據(jù)或更改請求方式。
配置如下
location /abd/def/uploadFile/ {
return 307 http://x.com:y/abc/def/uploadFiles;
}
最后轉(zhuǎn)發(fā)成功!

總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
SpringBoot前端后端分離之Nginx服務器下載安裝過程
Nginx是一款輕量級的Web服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,這篇文章主要介紹了SpringBoot前端后端分離之Nginx服務器,需要的朋友可以參考下2022-08-08
Nginx中404頁面的配置及AJAX請求返回404頁面的方法
404是請求頁面不存在的錯誤代碼,在Nginx中有時處理jQuery中的ajax方法雖然能返回404頁面但錯誤代碼卻返回200,針對此問題我們具體來看一下Nginx中404頁面的配置及AJAX請求返回404頁面的方法2016-05-05
Keepalived+Nginx+Tomcat 實現(xiàn)高可用Web集群的示例代碼
這篇文章主要介紹了Keepalived+Nginx+Tomcat 實現(xiàn)高可用Web集群的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09
Nginx PHP-Fcgi中因PHP執(zhí)行時間導致504 Gateway Timeout錯誤解決記錄
這篇文章主要介紹了Nginx PHP-Fcgi中因PHP執(zhí)行時間導致504 Gateway Timeout錯誤解決記錄,本文的解決方法得來不易,需要的朋友可以參考下2014-09-09
CentOS6使用nginx搭建web網(wǎng)站服務的方法
這篇文章主要介紹了CentOS6使用nginx搭建web網(wǎng)站服務的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07
詳解Nginx服務器的nginx-http-footer-filter模塊配置
這篇文章主要介紹了Nginx服務器的nginx-http-footer-filter模塊配置,nginx-http-footer-filter用作在請求的頁面底部插入代碼,需要的朋友可以參考下2016-01-01

