一、502 bad gateway nginx什么意思?
通俗的來講,502 bad gateway代表您所訪問的網站出了問題,因為502 Bad Gateway 服務器作為網關或者代理時,是為了完成訪問下一個服務器,但該服務器返回了非法的應答。也許是暫時的,也許是的。建議大家稍等一下再從新訪問試試。
二、502 bad gateway產生原因?
502 bad gateway產生的大多數原因都是由于連接超時,我們向服務器發送請求,由于服務器當前的鏈接數太多,導致服務器無法給于正常的響應,才會產生502 bad gateway報錯。
一般來說,服務器只是作為網關或代理,以滿足客戶的要求(如Web瀏覽器)來訪問我們所請求的URL。服務器收到無效的響應從上游服務器訪問請行它的要求。這并不意味著上游服務器已關閉(無響應網關/代理),而是上游服務器和網關/代理不同意協議交換數據。由于互聯網協議是固定的,所以,這意味著一個或兩個機器已經不正確或沒有完全編程。
三、固定502錯誤產生原因?
一般這個問題是由于不良的IP之間的溝通后端計算機,可能包括在Web服務器上的網站您嘗試訪問。在分析這個問題,您應該清除瀏覽器緩存再訪問。
如果您上網時在您嘗試訪問的所有網站上都看這個問題,有兩種可能
①你的ISP重大設備故障/過載
②有問題的內部互聯網連接如您的防火墻無法正常運作。
在種情況下,只有您的ISP可以幫助您。在第二種情況下,你需要解決什么,那是阻止你進入互聯網。
如果您只有在部分嘗試訪問的網站中出現此問題,那很可能是一個問題,即這些網站之一,其設備故障或超載。聯系你網站的管理員。
四、502 bad gateway解救方法?
1、刷新
說白了很簡單是——刷新(不是一般的刷新哦)
這里所講的刷新主要是指從服務器下載數據到本地的硬盤瀏覽器,再從本地硬盤中讀取數據到瀏覽器顯示給我們看。通常有兩種刷新模式:
①基本刷新:是點擊刷新或者使用F5快捷鍵
基本刷新只是從本地的硬盤重新拿取數據到瀏覽器,并不重新向服務器發出請求。大部分用戶很多時候都是這樣刷新的,遇到502報錯的沒有任何效果。
②從服務器刷新:如果你重新直接點擊你想要瀏覽的網頁鏈接,你會發現剛剛還顯示的"502 bad gateway"錯誤信息頁面,重新點擊鏈接后又可以正常瀏覽。
解決方法:是從服務器上刷新:快捷鍵 ctrl+F5,這樣是重新向服務器發送請求了,如果服務器能正常給予你響應你可以看到頁面了。
2、DNS 緩沖問題
這種情況主要是你在沒有用vpn的情況下,訪問了國外一些被國家防火墻屏蔽的網站如YouTube,facebook之類。
解決辦法:這種情況通常在幾分鐘之內可以訪問了。也可以嘗試 在cmd窗口運行 ipconfig /flushdns 來刷新DNS緩存
3、dns 被劫持
解決辦法:更換DNS,推薦114.114.114.114,還有阿里的公共DNS 如:223.5.5.5、223.6.6.6
五、Nginx 502 bad gateway錯誤
①查看php-cgi是否在運行
有時候由于網站流量過大或者其它原因,導致php-cgi直接down掉,所以我們得看php-cgi是否在運行。執行以下命令:
ps -A | grep php5-cgi
若沒有運行,我們可以手動啟動
/etc/init.d/php_cgi start
如果你發現php-cgi不明原因有時候down掉,可以使用下面的腳本臨時解決這個問題,添加到cronjob。
if ps aux | grep ‘php5-cgi’ | grep -v grep > /dev/null ; then echo "PHP-cgi is runnning !" else echo "PHP-cgi is down. Starting over…" /etc/init.d/php-fcgi start fi
②fastcgi進程數不夠用、php執行時間長的原因
fastcgi進程數可以修改php-fpm.conf中的max_children的數值,高峰時php-cgi耗掉的內存為20M,請根據自己的內存情況計算了。
限制php執行時間可以在php-fpm.conf中的request_terminate_timeout設置,這是為了防止php程序的bug導致php-cgi假死。
③FastCGI執行時間過長
根據實際情況調高以下參數值
fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300;
六、解決nginx出現502的錯誤
①查看當前的PHP FastCGI進程數是否夠用
netstat -anpo | grep "php-cgi" | wc -l
如果實際使用的"FastCGI進程數"接近預設的"FastCGI進程數",那么,說明"FastCGI進程數"不夠用,需要增大。
②部分PHP程序的執行時間超過了Nginx的等待時間,可以適當增加nginx.conf配置文件中FastCGI的timeout時間
例如,系統當前的PHP FastCGI進程數明顯超過了預設值的64這個數值,在電信的服務器上查看當前的PHP FastCGI進程數沒有高于64這個數值,而且網通線路的活動連接明顯高于電信的活動連接,由此可以說明出現nginx不穩定的情況是由于服務器訪問負載過大引起的。
總結:php-cgi進程數不夠用、php執行時間長、或者是php-cgi進程死掉,都會出現502錯誤。