本文目錄一覽:
- 1、502 Bad Gateway 怎麼解決
- 2、訪問php頁面出現504 Gateway Timeout 怎麼解決
- 3、502 bad gateway怎麼解決
- 4、gateway time out什麼意思
502 Bad Gateway 怎麼解決
502badgateway要先找到nginx配置的路徑。
然後找到nginx所在的error日誌文件來查看具體原因。
如果是客戶端瀏覽器配置的問題,以360瀏覽器為例,出現502BadGateway可能是設置了代代理導致的。
取消瀏覽器代理之後,刷新一下就可以訪問了。
502BadGateway是一種報錯提示,這一錯誤並不意味着上游服務器已關閉(無響應網關/代理),而是上游服務器和網關/代理不同意的協議交換數據。
鑒於互聯網協議是相當清楚的,它往往意味着一個或兩個機器已不正確或不完全編程。
訪問php頁面出現504 Gateway Timeout 怎麼解決
一般看來, 這種情況可能是由於nginx默認的fastcgi進程響應的緩衝區太小造成的, 這將導致fastcgi進程被掛起, 如果你的fastcgi服務對這個掛起處理的不好, 那麼最後就極有可能導致504 Gateway Time-out
現在的網站, 尤其某些論壇有大量的回復和很多內容的, 一個頁面甚至有幾百K
默認的fastcgi進程響應的緩衝區是8K, 我們可以設置大點
在nginx.conf里, 加入:
fastcgi_buffers 8 128k
這表示設置fastcgi緩衝區為8×128k
當然如果在進行某一項即時的操作, 可能需要nginx的超時參數調大點, 例如設置成60秒:
send_timeout 60;
只是調整了這兩個參數, 結果就是沒有再顯示那個超時, 可以說效果不錯
另一篇文章
首先是更改php-fpm的幾處配置:
把max_children由之前的10改為現在的30,這樣就可以保證 有充足的php-cgi進程可以被使用;
把request_terminate_timeout由之前的0s改為60s,這樣php-cgi進程 處理腳本的超時時間就是60秒,可以防止進程都被掛起,提高利用效率。
接着再更改nginx的幾個配置項,減少FastCGI的請求次 數,盡量維持buffers不變:
fastcgi_buffers由 4 64k 改為 2 256k;
fastcgi_buffer_size 由 64k 改為 128K;
fastcgi_busy_buffers_size 由 128K 改為 256K;
fastcgi_temp_file_write_size 由 128K 改為 256K。
好了,重新加載php-fpm和nginx的配置,再次測試,至今兩周時間內沒有再出現504 Gateway Time-out的情況,算是達到效果了。
另外,php-fpm的默認靜態處理方式會使得php-cgi的進程長期佔用內存而無法釋放,這也是導致nginx出錯的原因之一,因此可以將php-fpm的處理方式改成apache模式。
apache-like
502 bad gateway怎麼解決
502badgateway要先找到nginx配置的路徑。
然後找到nginx所在的error日誌文件來查看具體原因。
如果是客戶端瀏覽器配置的問題,以360瀏覽器為例,出現502BadGateway可能是設置了代代理導致的。
取消瀏覽器代理之後,刷新一下就可以訪問了。
502BadGateway是一種報錯提示,這一錯誤並不意味着上游服務器已關閉(無響應網關/代理),而是上游服務器和網關/代理不同意的協議交換數據。
鑒於互聯網協議是相當清楚的,它往往意味着一個或兩個機器已不正確或不完全編程。
gateway time out什麼意思
gateway time out意思是:網關超時
網關(Gateway)又稱網間連接器、協議轉換器。網關在傳輸層上以實現網絡互連,是最複雜的網絡互連設備,僅用於兩個高層協議不同的網絡互連。網關的結構也和路由器類似,不同的是互連層。網關既可以用於廣域網互連,也可以用於局域網互連。 網關是一種充當轉換重任的計算機系統或設備。在使用不同的通信協議、數據格式或語言,甚至體系結構完全不同的兩種系統之間,網關是一個翻譯器。與網橋只是簡單地傳達信息不同,網關對收到的信息要重新打包,以適應目的系統的需求。同時,網關也可以提供過濾和安全功能。大多數網關運行在OSI 7層協議的頂層–應用層。
由於nginx默認的fastcgi進程響應緩衝區太小造成:
這種情況下導致fastcgi進程被掛起,如果fastcgi服務隊這個掛起處理不是很好的話,就可能提示“504 Gateway Time-out”錯誤。
情況一解決辦法:
默認的fastcgi進程響應的緩衝區是8K,可以設置大一點,在nginx.conf里,加入:fastcgi_buffers 8 128k
這表示設置fastcgi緩衝區為8塊128k大小的空間。
情況一解決辦法(改進):
在上述方法修改後,如果還是出現問題,可以繼續修改nginx的超時參數,將參數調大一點,如設置為60秒:
send_timeout 60;
經過這兩個參數的調整,結果沒有再提示“504 Gateway Time-out”錯誤,說明效果還是挺不錯的,問題基本解決。
情況二:PHP環境的配置問題
這裡需要對php-fpm和nginx進行配置修改。因為這種情況下,也會出現“504 Gateway Time-out”錯誤提示。
情況二解決辦法( php-fpm配置修改):
將max_children由之前的10改為30,這樣操作是為了保證有充足的php-cgi進程可以被使用。
將request_terminate_timeout由之前的0秒改成60秒,這樣使php-cgi進程處理腳本的超時時間提高到60秒,可以防止進程被掛起以提高利用效率。
情況二解決辦法(nginx配置修改):
為了減少fastcgi的請求次數,盡量維持buffers不變,要更改nginx的幾個配置項,如下:
將fastcgi_buffers由4 64k改為2 256k;
將fastcgi_buffer_size 由64k改為128k;
將fastcgi_busy_buffers_size由128k改為256k;
將fastcgi_temp_file_write_size由128k改成256k。
情況二解決辦法修改完,需要重新加載php-fpm和nginx的配置,然後再進行測試。之後就沒有發現“504 Gateway Time-out”錯誤,效果也還是不錯的。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/311187.html