回覆列表
  • 1 # 小田愛科技

    聽說過502錯誤,404錯誤。最近訪問了幾個網站,提示我504 gateway time-out,當我們在訪問大流量網站或者運營有較多資料的網站時候,偶爾會出現504 Gateway Time-out錯誤,大多都是由於網站伺服器配置不當導致的。

    504 Gateway Time-out字面意思,我們可以理解為網頁請求超時,也是瀏覽網站網頁所發出的請求沒有反應或者未響應,在網站程式層面來說,是請求未能夠執行相應的PHP-CGI程式,或者PHP-CGI程式未能做出相應的處理,又或者是CGI程式的響應處理結果未能夠反饋到瀏覽器或者未能及時反饋到瀏覽器。

    504 Gateway Time-out錯誤多是存在於Nginx網站伺服器環境下,多與nginx.conf與php-fpm.conf設定是否正確合理有關。504GatewayTime-out錯誤的解決方法是根據網站伺服器效能及網站流量等諸多因素整合考慮,正確合理的設定niginx.conf和php-fpm.conf配置。

    進行正確合理nginx.conf配置,我們需要首先了解和清楚我們網站伺服器的配置效能,包括CPU、記憶體等,並對網站伺服器進行必要的效能測試,從而準確的掌握網站伺服器自身效能狀況;

    其次,是透過網站統計程式碼的新增,分析一段時間內網站流量狀況,比如:百度統計、CNZZ站長統計等,掌握網站日流量及PHP-CGI請求的大概情況;

    根據我們掌握的伺服器效能狀況及網路流量情況,合理的對nginx.conf中的下列字句進行合理正確的設定。

    fastcgi_connect_timeout300s;

    fastcgi_send_timeout300s;

    fastcgi_read_timeout300s;

    fastcgi_buffer_size128k;

    fastcgi_buffers8128k;#8128

    fastcgi_busy_buffers_size256k;

    fastcgi_temp_file_write_size256k;

    fastcgi_intercept_errorson;

    這些字句的設定規定了PHP-CGI的連線、傳送和讀取時間限制,需根據伺服器效能及網路流量綜合考慮設定,時間設定過長會給網站伺服器造成壓力,導致網站響應緩慢,甚至伺服器宕機;時間設定過短,則會出現504 Gateway Time-out或者其他CGI無響應錯誤。

    還有是php-fpm.conf中max_children與request_terminate_timeout兩個重要引數的設定。

    這兩個引數的設定需要我們根據PHP程式情況及伺服器頻寬狀況綜合考慮並計算出合理準確的值,才能夠避免504 Gateway Time-out或者其他CGI無響應錯誤的出現。

    通常情況下,一般網站,可將request_terminate_timeou設定在900s左右,而max_children值根據伺服器記憶體大小和CGI請求數目設定為合理的數值,一般設定為800M左右。

    除此之外,還有以下原因會造成504 gateway time-out,可以瞭解下:

    (1)首先需要確定的是後端伺服器啟動沒有,當然在這裡是php-fpm進行啟動沒有。

    (2)其次是確定php-fpm的worker程序是否夠用。

    (3)FastCGI快取或代理的快取情況。

    (4)PHP執行時間長。

  • 中秋節和大豐收的關聯?
  • “我努力向前飛,再累也不後退”這是誰的哪首歌裡的歌詞?