linux中 Nginx 常見502錯誤問題解決辦法

來源:互聯網
上載者:User

常見的Nginx 502 Bad Gateway解決辦法如下:

Nginx 502錯誤情況1:

網站的訪問量大,而php-cgi的進程數偏少。
針對這種情況的502錯誤,只需增加php-cgi的進程數。具體就是修改/usr/local/php/etc/php-fpm.conf 檔案,將其中的max_children值適當增加。這個資料要依據你的VPS或獨立伺服器的配置進行設定。一般一個php-cgi進程佔20M記憶體,你可以自己計算下,適量增多。
/usr/local/php/sbin/php-fpm restart 然後重啟一下.


Nginx 502錯誤情況2:

CPU佔用率、記憶體佔用率非常高,遭到CC攻擊.
解決方案請參考:LinuxVPS簡單解決CC攻擊

Nginx 502錯誤情況3:

CPU佔用率不高,記憶體溢出。
檢查一下網站程式有沒有問題?一般小偷網站常常會出現記憶體溢出。
檢查一下/var/log/目錄下的日誌,看看是不是有人爆破SSH和FTP連接埠?
SSH、FTP遭到窮舉也會佔用大量記憶體。是的話改掉SSH連接埠和FTP連接埠即可

將網上找到的一些和502 Bad Gateway錯誤有關的問題和排查方法列一下,先從FastCGI配置入手:

1.查看FastCGI進程是否已經啟動

NGINX 502錯誤的含義是sock、連接埠沒被監聽造成的。我們先檢查fastcgi是否在運行

2.檢查系統Fastcgi進程運行情況

除了第一種情況,fastcgi進程數不夠用、php執行時間長、或者是php-cgi進程死掉也可能造成nginx的502錯誤
運行以下命令判斷是否接近FastCGI進程,如果fastcgi進程數接近設定檔中設定的數值,表明worker進程數設定太少
netstat -anpo | grep "php-cgi" | wc -l

3.FastCGI執行時間過長

根據實際情況調高以下參數值
fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300;

4.頭部太大

nginx和apache一樣,有前端緩衝限制,可以調整緩衝參數
fastcgi_buffer_size 32k; fastcgi_buffers 8 32k;
如果你使用的是nginx的負載平衡Proxying,調整
proxy_buffer_size 16k; proxy_buffers 4 16k;

5.https轉寄配置錯誤

正確的配置方法

server_name www.111cn.net; location /myproj/repos { set $fixed_destination $http_destination; if ( $http_destination ~* ^https(.*)$ ) { set $fixed_destination http$1; } proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Destination $fixed_destination; proxy_pass http://subversion_hosts; }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.