常見的Nginx 502 Bad Gateway解決辦法如下:
Nginx 502錯誤情況1:
網站的訪問量大,而php-cgi的進程數(shù)偏少。
針對這種情況的502錯誤,只需增加php-cgi的進程數(shù)。具體就是修改/usr/local/php/etc/php-fpm.conf 文件,將其中的max_children值適當增加。這個數(shù)據要依據你的VPS或獨立服務器的配置進行設置。一般一個php-cgi進程占20M內存,你可以自己計算下,適量增多。
/usr/local/php/sbin/php-fpm restart 然后重啟一下.
Nginx 502錯誤情況2:
CPU占用率、內存占用率非常高,遭到CC攻擊.
解決方法請參考:LinuxVPS簡單解決CC攻擊
Nginx 502錯誤情況3:
CPU占用率不高,內存溢出。
檢查一下網站程序有沒有問題?一般小偷站點常常會出現(xiàn)內存溢出。
檢查一下/var/log/目錄下的日志,看看是不是有人爆破SSH和FTP端口?
SSH、FTP遭到窮舉也會占用大量內存。是的話改掉SSH端口和FTP端口即可
將網上找到的一些和502 Bad Gateway錯誤有關的問題和排查方法列一下,先從FastCGI配置入手:
1.查看FastCGI進程是否已經啟動
NGINX 502錯誤的含義是sock、端口沒被監(jiān)聽造成的。我們先檢查fastcgi是否在運行
2.檢查系統(tǒng)Fastcgi進程運行情況
除了第一種情況,fastcgi進程數(shù)不夠用、php執(zhí)行時間長、或者是php-cgi進程死掉也可能造成nginx的502錯誤
運行以下命令判斷是否接近FastCGI進程,如果fastcgi進程數(shù)接近配置文件中設置的數(shù)值,表明worker進程數(shù)設置太少
netstat -anpo | grep "php-cgi" | wc -l
3.FastCGI執(zhí)行時間過長
根據實際情況調高以下參數(shù)值
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
4.頭部太大
nginx和apache一樣,有前端緩沖限制,可以調整緩沖參數(shù)
fastcgi_buffer_size 32k;
fastcgi_buffers 8 32k;
如果你使用的是nginx的負載均衡Proxying,調整
proxy_buffer_size 16k;
proxy_buffers 4 16k;
5.https轉發(fā)配置錯誤
正確的配置方法
server_name www.jb51.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;
}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。