網站504錯誤什么原因 網站報錯503是什么原因?


網站504錯誤什么原因 網站報錯503是什么原因?

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

文章插圖
  • 那么遇到這些情況應該怎樣處理呢?下面是關于nginx服務器出現504 Gateway Time-out的解決方法 。
  • 原因一:由于nginx默認的fastcgi進程響應的緩沖區太小造成的錯誤
  • 解決方式:一般默認的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”錯誤提示 。而這時候Nginx 504 Gateway Time-out的含義就是所請求的網關沒有請求到,簡單來說就是沒有請求到可以執行的PHP-CGI 。
  • 解決方式更改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模式 。SSL證書是HTTP明文協議升級HTTPS加密協議的重要渠道,是網絡安全傳輸的加密到通道 。關于更多SSL證書的資訊,請關注GDCA(數安時代) 。GDCA致力于網絡信息安全,已通過WebTrust 的國際認證 , 是全球可信任的證書簽發機構 。GDCA專業技術團隊將根據用戶具體情況為其提供最優的產品選擇建議,并針對不同的應用或服務器要求提供專業對應的HTTPS解決方案 。