504 Gateway Time-out錯誤的解決方法
阿新 • • 發佈:2018-12-19
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、記憶體等,並對網站伺服器進行必要的效能測試(可參考:vps主機效能測試方法詳解),從而準確的掌握網站伺服器自身效能狀況; 其次,是通過網站統計程式碼的新增,分析段時間內網站流量狀況,比如:百度統計、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左右。