502錯誤詳解

最近公司網站頻繁出現502錯誤,連接靜態頁沒問題,只要連接數據庫的網頁就報502錯誤,經過查找終於找到原因了




什麼原因導致502錯誤?  在網上看了很多解決方法,在這裏總結一下,如有錯誤,請指出,謝謝!

 

 1php-cgi進程數不夠用 (我就是採用此方法解決的)

 

   vim  php-fpm.conf 

 

   修改其中的2個參數

 

1在安裝好使用過程中出現502問題,一般是因爲默認php-cgi進程是5個,可能因爲phpcgi進程不夠用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 將其中的max_children值適當增加

 

      這個數值是不確定的 需要我們自己算的,這個值原則上是越大越好,php-cgi的進程多了就會處理的很快,排隊的請求就會很少,減小出現502錯誤的機率。

         一般來說,一臺服務器的正常情況下每一個php-cgi要耗費的內存爲20M左右。如果我就將此值設爲80,那麼也就是說大概要耗費服務器1600M內存。

 

      查看一下當前系統中有多少個php-cgi進程在運行 

 

         netstat  -anpo  |  grep  php-cgi  |  wc -l      

 

如果這個值接近你的在配置文件裏面設置的值,說明需要增加
注:這要根據機器的實際情況而定,每個機器的硬件設施和環境不一樣


參數爲:
<value name=”max_children”>80</value>

 

 

(2)另外一個參數就是php-cgi腳本的執行時間  

<value name=”request_terminate_timeout”>0s</value>這裏寫0s的意思是讓php-cgi一直執行下去,沒有時間限制。

 

注意:如果你做不到這一點,也就 是說你的PHP-CGI可能出現某個BUG,或者你的寬帶不夠充足或者其他的原因導致你的PHP-CGI假死那麼就建議你給 request_terminate_timeout賦一個值,這個值可以根據服務器的性能進行設定。一般來說性能越好你可以設置越高,20分鐘-30分 鍾都可以。

 

 

修改完這兩個參數,重啓一下php-cgi,看是否還出現502錯誤

 

 

 

 2: php執行時間長

 

php執行超時,修改/usr/local/php/etc/php.ini max_execution_time 改爲300

    重啓一下php-cgi,看是否還出現502錯誤


 3: php-cgi進程死掉

 

殺死其進程,重啓php-cgi

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章