如何解決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; }
導(dǎo)致第3方服務(wù)器報錯如圖
解決方法
Nginx 配置 307
其作用如下:
1.return 307
是 Nginx 配置中的一個指令,用于返回一個指定的 HTTP 狀態(tài)碼,并重定向到客戶端發(fā)出的相同請求地址。當(dāng)使用 return 307
> 時,Nginx 將會保留客戶端發(fā)出的原始請求方法和請求體,并以 307 Temporary Redirect 的狀態(tài)碼將請求重定向回客戶端。
2.307 狀態(tài)碼表示臨時重定向,客戶端應(yīng)該繼續(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ā)成功!
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot前端后端分離之Nginx服務(wù)器下載安裝過程
Nginx是一款輕量級的Web服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,這篇文章主要介紹了SpringBoot前端后端分離之Nginx服務(wù)器,需要的朋友可以參考下2022-08-08Nginx中404頁面的配置及AJAX請求返回404頁面的方法
404是請求頁面不存在的錯誤代碼,在Nginx中有時處理jQuery中的ajax方法雖然能返回404頁面但錯誤代碼卻返回200,針對此問題我們具體來看一下Nginx中404頁面的配置及AJAX請求返回404頁面的方法2016-05-05Keepalived+Nginx+Tomcat 實現(xiàn)高可用Web集群的示例代碼
這篇文章主要介紹了Keepalived+Nginx+Tomcat 實現(xiàn)高可用Web集群的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Nginx PHP-Fcgi中因PHP執(zhí)行時間導(dǎo)致504 Gateway Timeout錯誤解決記錄
這篇文章主要介紹了Nginx PHP-Fcgi中因PHP執(zhí)行時間導(dǎo)致504 Gateway Timeout錯誤解決記錄,本文的解決方法得來不易,需要的朋友可以參考下2014-09-09CentOS6使用nginx搭建web網(wǎng)站服務(wù)的方法
這篇文章主要介紹了CentOS6使用nginx搭建web網(wǎng)站服務(wù)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07詳解Nginx服務(wù)器的nginx-http-footer-filter模塊配置
這篇文章主要介紹了Nginx服務(wù)器的nginx-http-footer-filter模塊配置,nginx-http-footer-filter用作在請求的頁面底部插入代碼,需要的朋友可以參考下2016-01-01