
http post請求后,返回消息碼為504
504錯誤代表網關超時 (Gateway timeout),是指
服務器作為網關或代理,但是沒有及時從上游服務器收到請求。
服務器(不一定是 Web 服務器)正在作為一個網關或代理來完成客戶(如您的
瀏覽器或我們的 CheckUpDown 機器人)訪問所需網址的請求。 為了完成您的 HTTP 請求, 該服務器訪問一個上游服務器, 但沒得到及時的響應。
這通常意味着上游服務器已關閉(不響應
網關 / 代理),而不是上游服務器和網關/代理在交換數據的協議上不一致。
正常情況下,是由於被請求服務器發送超時引起。
因為服務器有nginx轉發,所以上nginx服務器查看日志
在對應的access_http.log文件下查到日志
有504請求超時。
查看其他博客,大概了解問題可能在nginx配置的timeout時間參數上。
修改nginx.conf文件中以下參數值,根據實際業務情況,修改時間參數
proxy_connect_timeout 2s;
proxy_read_timeout 60s;
proxy_send_timeout 5s;
對應參數解析如下
nginx.conf中,設置以下幾個參數,增加超時時間
fastcgi_connect_timeout
fastcgi連接超時時間,默認60秒
fastcgi_send_timeout
nginx 進程向 fastcgi 進程發送請求過程的超時時間,默認值60秒
fastcgi_read_timeout
fastcgi 進程向 nginx 進程發送輸出過程的超時時間,默認值60秒
修改完畢后,對nginx進行重啟
/usr/nginx/sbin/nginx 路徑下使用
./nginx -s stop 先停服務
ps -ef |grep nginx 查看nginx服務是否停止
./nginx 啟服務
ps -ef |grep nginx 查看nginx服務是否生效
