運維相關 如何解決504報錯

YJ明發表於2021-09-24

504原因分析:

  1. PHP執行時間超時,導致程式報錯504;
  2. Nginx執行時間超時,導致程式報錯504;
  3. php-fpm執行超時,導致程式報錯504。

1. PHP程式碼導致程式報錯

首先確認PHP版本,PHP5.4版本下有一個叫做safe_mode安全模式的執行模式,一旦開啟後,一些函式將會失效,例如我們解決PHP執行時間限制的函式 set_time_limit以及 php.ini中的max_execution_time 如果你開啟了這一模式 請關閉後重啟PHP。
PHP預設安全模式是關閉的 所以如果你沒有開啟過安全模式,只需要修改php.ini中的 max_execution_time 選項,或者程式碼中使用set_time_limit即可解決PHP超時導致的504錯誤。

2. Nginx請求超時導致程式報錯

如果PHP程式碼處理以後還是報504錯誤,我們就可以從ngxin上找找看是否是nginx訪問超時導致的錯誤。

proxy_connect_timeout 1000;
proxy_send_timeout 1000;
proxy_read_timeout 1000;
send_timeout 1000;

將上述程式碼加入nginx配置項中,重啟nginx後生效,再次嘗試是否解決請求超時問題。

3. fastcgi請求超時導致程式報錯

如果更改以上內容仍然無法解決504的錯誤,那麼很可能是fastcgi請求超時導致了程式訪問超時,這個時候只需將下述內容加入ngxin fastcgi相關配置中,就可以解決請求超時的問題。

fastcgi_connect_timeout 1000;
fastcgi_send_timeout 1000;
fastcgi_read_timeout 1000;

總結:請求超時可能是多種原因導致,具體情況具體分析,程式碼總是不會騙人的嘛。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章