nginx Tengine 502 Bad Gateway相關問題排查

來源:互聯網
上載者:User

ginx應對高並發訪問,聽說是很有一套的,為了應對1萬次的並發,不算高哈,弄了個lnmp來測試,安裝完成後,就開1000線來並發訪問,一下就出現了502 bad gateway,看來一些設定檔要進行相應的修改呀,在網上找了點相關的資料,分享一下。

首先,這裡講的伺服器環境(lnmp)是指 linux + nginx + php(php-cgi + php-fpm)+ mysql。

502 Bad Gateway是lnmp下出現得最頻繁的問題,其原因也有很多,以下是我收集的問題原因及其解決方案。

1. php進程死亡
此原因的問題表現為:每次動態(php)請求都出現502錯誤
解決方案:啟動php即可 “service php-fpm start “,或者 “php安裝路徑/php/sbin/php-fpm start”

2. php-cgi進程數不足
此原因的問題表現為:動態請求有時出現502錯誤,一般沒問題,這是並發高時php-cgi進程數不夠用的表現
解決方案:修改php-fpm配置php-fpm.conf,將60 中的數加大,max_children數的設定不僅取決於伺服器硬體設定,而且和php程式的複雜度有關,一般4G記憶體可以設定到120-200。修改後把php-fpm reload下;必要時是再修改nginx配置nginx.conf,將 worker_processes 數調到與cpu數相等(worker_processes預設為1)

3. php-cgi進程逾時
此原因的問題表現為:php進程運行一段時間後出現502錯誤,這種情況可能是php程式沒有加set_time_limit(0),也可能是被php-fpm的設定限定了已耗用時間,下面討論第二中情況
解決方案:修改php-fpm配置php-fpm.conf,將30s 中數字調到更高,調為0s則允許無限時間運行;必要時再修改nginx配置nginx.conf,將fastcgi_connect_timeout、 fastcgi_send_timeout、fastcgi_read_timeout參數加大

4. 磁碟空間不足
此原因較少,問題表現為:502錯誤或者無法串連到伺服器,無法串連到伺服器時nginx也死了
這種情況的判斷:啟動php-fpm或者nginx的時間較長,但最終啟動失敗,這大概就是磁碟空間不足了,然後可以用命令查看磁碟佔用狀況:df -lh ,如果根目錄”/”對應的磁碟使用率為100%,那麼需要清理磁碟空間
解決方案:刪除過大的記錄檔,關閉部分服務元件的日誌。一般需要檢查 /var/log 目錄下的記錄檔,檢查 nginx、php的日誌,檢查mysql的日誌。如果以上目錄沒有問題,則需一個一個的檢查其他目錄(優先檢查 /usr目錄),刪除過大的檔案。

註:同樣適用於Tengine.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.