首頁  >  文章  >  後端開發  >  php504錯誤怎麼解決

php504錯誤怎麼解決

王林
王林原創
2020-06-30 13:48:258141瀏覽

php504錯誤的解決方法:1、增加fastcgi進程回應的緩衝區大小;2、更改php環境配置,增加php-cgi進程處理腳本的逾時時間;3、將php-fpm的處理方式改成apache模式。

php504錯誤怎麼解決

解決方法如下:

情境一:

由於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的行程長期佔用記憶體而無法釋放,進而導致出現504錯誤。

解決方式:

將php-fpm的處理方式改成apache模式即可。

如果您想學習更多相關知識,請造訪php中文網

以上是php504錯誤怎麼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn