當我們在訪問大流量網站phpcms或者運營有較多數據的網站時候,偶爾會出現504 Gateway Time-out錯誤,那么Nginx 504 gateway time-out怎么解決?504 gateway time-out nginx什么意思呢?跟著小編一起看看吧。
504 gateway time-out nginx什么意思?
504 Gateway Time-out字面意思,我們可以理解為網頁請求超時,也是瀏覽網站網頁所發出的請求沒有反應或者未響應,在網站phpcms層面來說,是請求未能夠執行相應的PHP-CGI程序,或者PHP-CGI程序未能做出相應的處理,又或者是CGI程序的響應處理結果未能夠反饋到瀏覽器或者未能及時反饋到瀏覽器。
Nginx 504 gateway time-out怎么解決?
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中的下列字句進行合理正確的設置。
這些字句的設置規定了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執行時間長。