本文目錄一覽:
- 1、502 Bad Gateway 怎麼解決
- 2、php 502 bad gateway怎麼解決
- 3、打開網站有時出現502 Bad Gateway,怎麼解決?
- 4、運行php文件出現502 bad gateway 怎麼解決
- 5、502是什麼錯誤碼
502 Bad Gateway 怎麼解決
502badgateway要先找到nginx配置的路徑。
然後找到nginx所在的error日誌文件來查看具體原因。
如果是客戶端瀏覽器配置的問題,以360瀏覽器為例,出現502BadGateway可能是設置了代代理導致的。
取消瀏覽器代理之後,刷新一下就可以訪問了。
502BadGateway是一種報錯提示,這一錯誤並不意味着上游服務器已關閉(無響應網關/代理),而是上游服務器和網關/代理不同意的協議交換數據。
鑒於互聯網協議是相當清楚的,它往往意味着一個或兩個機器已不正確或不完全編程。
php 502 bad gateway怎麼解決
1. php.ini的memory_limit 過小(如果有個別php程序進程需要佔用極大內存時這個必須注意)
2. php-fpm.conf中max_children或者max_requests 設置不合理(設置過小會因為沒有足夠的cgi進程處理請求,設置過大會出現一會兒有響應正常,一會兒等很久才有響應的情況,一般情況下children按 照內存計算,比如說1G設置64,2G128。這個根據實際情況自行調整。另外查看當前的PHP FastCGI進程數是否夠用的命令為:netstat -anpo |grep “php-cgi” | wc -l 如果實際使用的“FastCGI進程數”接近預設的“FastCGI進程數”,那麼,說明“FastCGI進程數”不夠用,需要增大。)
3. 查看nginx錯誤日誌,發現 pstream sent too big header while reading response headerfrom upstream ,則檢查client head buffer,fastcgi buffer size是否過小,可設置為32K。
4. php程序執行時間過長而超時,檢查nginx和fastcgi中各種timeout設置。(nginx 中的 fastcgi_connect_timeout 300;fastcgi_send_timeout 300 :fastcgi_read_timeout300; keepalive_timeout ; php-fpm中的request_terminate_timeout,php.ini中的max_execution_time)
5. php-fpm有一個參數 max_requests ,該參數指明了每個children最多處理多少個請求後便會被關閉。在大量處理請求下,如果該值設置過小會導致children頻繁的自殺和建立而浪費 大量時間,若所有的children差不多都在這個時候自殺,則重建前將沒有children響應請求,於是出現502 。可以將該值設置大一些或者是0[無限]。
如果你服務器並發量非常大,那隻能先增加機器,然後按以下方式優化會取得更好效果;但如果你並發不大卻出現502,一般都可以歸結為配置問題,腳本超時問題。
1.php-fpm進程數不夠用
使用netstat -napo |grep “php-fpm” | wc -l查看一下當前fastcgi進程個數,如果個數接近conf里配置的上限,就需要調高進程數。
但也不能無休止調高,可以根據服務器內存情況,可以把php-fpm子進程數調到100或以上,在4G內存的服務器上200就可以。
2. 調高調高linux內核打開文件數量
可以使用這些命令(必須是root帳號)
echo ‘ulimit -HSn 65536’ /etc/profile
echo ‘ulimit -HSn 65536’ /etc/rc.local
source /etc/profile
3.腳本執行時間超時
如果腳本因為某種原因長時間等待不返回,導致新來的請求不能得到處理,可以適當調小如下配置。
nginx.conf裡面主要是如下
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
php-fpm.conf里如要是如下
request_terminate_timeout =10s
4.緩存設置比較小
修改或增加配置到nginx.conf
proxy_buffer_size 64k;
proxy_buffers 512k;
proxy_busy_buffers_size 128k;
5. recv()failed (104: Connection reset by peer) while reading response header fromupstream
可能的原因機房網絡丟包或者機房有硬件防火牆禁止訪問該域名
但最重要的是程序里要設置好超時,不要使用php-fpm的request_terminate_timeout,
最好設成request_terminate_timeout=0;
因為這個參數會直接殺掉php進程,然後重啟php進程,這樣前端nginx就會返回104: Connection reset by peer。這個過程是很慢,總體感覺就是網站很卡。
May 01 10:50:58.044162[WARNING] [pool www] child 4074, script’/usr/local/nginx/html/quancha/sameip/detail.php’ execution timed out(15.129933 sec), terminating
May 01 10:50:58.045725 [WARNING] [pool www] child 4074 exited on signal 15SIGTERM after 90.227060 seconds from start
May 01 10:50:58.046818 [NOTICE] [pool www] child 4082 started
說一千道一萬最重要的就是程序里控制好超時,gethostbyname、curl、file_get_contents等函數的都要設置超時時間。
另一個就是多說,這個東西是增加了網站的交互性,但是使用的多了反應就慢了,如果你網站超時且使用了多說是,可以關閉它。
6、自己遇到502的解決辦法:
調整增大php 和Nginx 的backlog數。
打開網站有時出現502 Bad Gateway,怎麼解決?
打開網站有時出現502 Bad Gateway可以這樣解決:
1、502 Bad Gateway錯誤的原因是網站到客戶端的鏈路網關路由異常。
2、要解決502 Bad Gateway錯誤服務端服務器問題,要先找到nginx配置的路徑。然後找到nginx所在的error日誌文件來查看具體原因。
3、如果是客戶端瀏覽器配置的問題,以360瀏覽器為例,出現502 Bad Gateway可能是設置了代 代理導致的。
4、找到360瀏覽器右上角的設置,看看代理配置是不是勾選了。
5、取消瀏覽器代理之後,刷新一下就可以訪問了。
6、如果是edge瀏覽器配置的問題,先找到edge瀏覽器,然後找到右上角選項,點擊更多連接設置。
7、然後點擊代理連接設置,打開IE的服務器代理就可以了。
8、如果是IE瀏覽器的配置問題,打開IE瀏覽器,找到工具欄中的internet 選項,點擊internet選項進入配置頁面。
9、然後點擊連接,找到局域網連接設置,然後關閉代理設置。
這就是打開網站有時出現502 Bad Gateway的解決步驟。
運行php文件出現502 bad gateway 怎麼解決
目前lnmp一鍵安裝包比較多的問題就是502 Bad Gateway,大部分情況下原因是在安裝php前,腳本中某些lib包可能沒有安裝上,造成php沒有編譯安裝成功。
解決辦法:可以嘗試根據lnmp一鍵安裝包中的腳本手動安裝一下,看看是什麼錯誤導致的。
在php.ini里,eaccelerator配置項一定要放在Zend Optimizer配置之前,否則也可能引起502 Bad Gateway
在安裝好使用過程中出現502問題,一般是因為默認php-cgi進程是5個,可能因為phpcgi進程不夠用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 將其中的max_children值適當增加。
php執行超時,修改/usr/local/php/etc/php.ini 將max_execution_time 改為300
磁盤空間不足,如mysql日誌佔用大量空間
查看php-cgi進程是否在運行
Nginx 502 Bad Gateway的含義是請求的PHP-CGI已經執行,但是由於某種原因(一般是讀取資源的問題)沒有執行完畢而導致PHP-CGI進程終止,一般來說Nginx 502 Bad Gateway和php-fpm.conf的設置有關。
php-fpm.conf有兩個至關重要的參數,一個是max_children,另一個是request_terminate_timeout,但是這個值不是通用的,而是需要自己計算的。
在安裝好使用過程中出現502問題,一般是因為默認php-cgi進程是5個,可能因為phpcgi進程不夠用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 將其中的max_children值適當增加。
你可以去後盾人平台看看,裡面的東西不錯
502是什麼錯誤碼
移動電話網絡上的錯誤代碼502表示連接超時。當我們向服務器發送請求時,由於目前鏈接太多,服務器無法給出正常響應,就會產生這種錯誤。
常見原因可能是PHP-CGI進程數量不足,MySQL語句執行緩慢導致PHP執行時間過長,或者PHP-CGI進程異常中斷,會出現502錯誤。
擴展信息:
大多數網站通過多個服務器或第三方代理運行。如果您所在的服務器因維護或其他原因停機,網站上可能會出現502BadGatewayError頁面。唯一的解決方案是等待服務器完成維護或修復故障。
防火牆相當於網站的守護者,保護你的網站免受非法用戶的入侵和分布式拒絕服務(DDOS)的攻擊。有時,錯誤的防火牆設置會導致防火牆將來自內容分髮網絡(CDN)的訪問請求視為對服務器的攻擊,因此會拒絕其訪問,從而導致502錯誤網關。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/157258.html