當前位置:妙知谷 >

遊戲數碼 >互聯網 >

網站打開出現504 gateway time-out怎麼解決?

網站打開出現504 gateway time-out怎麼解決?

做網站的同學經常會發現一些nginx服務器訪問時候提示504 Gateway Time-out錯誤,而出現這種錯誤有兩種情況,第一種可能是由於nginx默認的fastcgi進程響應的緩衝區太小造成的, 這將導致fastcgi進程被掛起, 如果你的fastcgi服務對這個掛起處理的不好, 那麼最後就極有可能導致504 Gateway Time-out。而第二種就有可能是PHP環境的配置問題,有些網站一直是使用nginx做代理後端的apache運行php來提供服務。apache經常會不定期不定時間的出現不能服務失去響應,然後nginx出現”504 Gateway Time-out”。

網站打開出現504 gateway time-out怎麼解決?

操作方法

(01)那麼遇到這些情況應該怎樣處理呢?下面是關於nginx服務器出現504 Gateway Time-out的解決方法。

(02)原因一:由於nginx默認的fastcgi進程響應的緩衝區太小造成的錯誤

(03)解決方式:一般默認的fastcgi進程響應的緩衝區是8K,這時可以設置大一點,在裏,加入:fastcgi_buffers 8 128k這表示設置fastcgi緩衝區為8塊128k大小的空間。當然如果在進行某一項即時的操作, 可能需要nginx的超時參數調大點, 例如設置成60秒:send_timeout 60;經過這兩個參數的調整,一般不會再提示“504 Gateway Time-out”錯誤,問題基本解決。

(04)情況二:PHP環境的配置問題有時候網站需要對php-fpm和nginx進行配置修改。因為這種情況下,也會出現“504 Gateway Time-out”錯誤提示。而這時候Nginx 504 Gateway Time-out的含義就是所請求的網關沒有請求到,簡單來説就是沒有請求到可以執行的PHP-CGI。

(05)解決方式更改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”錯誤,問題解決。

(06)情況三另外,php-fpm的默認靜態處理方式會使得php-cgi的進程長期佔用內存而無法釋放,這也是導致nginx出錯的原因之一,因此可以將php-fpm的處理方式改成apache模式。SSL證書是HTTP明文協議升級HTTPS加密協議的重要渠道,是網絡安全傳輸的加密到通道。關於更多SSL證書的資訊,請關注GDCA(數安時代)。GDCA致力於網絡信息安全,已通過WebTrust 的國際認證,是全球可信任的證書籤發機構。GDCA專業技術團隊將根據用户具體情況為其提供最優的產品選擇建議,並針對不同的應用或服務器要求提供專業對應的HTTPS解決方案。

特別提示

很多種出現504錯誤的原因都是不一樣的。

  • 文章版權屬於文章作者所有,轉載請註明 https://miaozhigu.com/sm/hulianwang/9zke3g.html