本文目錄一覽:
502 Bad Gateway 怎麼解決
502badgateway要先找到nginx配置的路徑。
然後找到nginx所在的error日誌文件來查看具體原因。
如果是客戶端瀏覽器配置的問題,以360瀏覽器為例,出現502BadGateway可能是設置了代代理導致的。
取消瀏覽器代理之後,刷新一下就可以訪問了。
502BadGateway是一種報錯提示,這一錯誤並不意味着上游服務器已關閉(無響應網關/代理),而是上游服務器和網關/代理不同意的協議交換數據。
鑒於互聯網協議是相當清楚的,它往往意味着一個或兩個機器已不正確或不完全編程。
PHP如何設置頁面最大執行過期時間
PHP如何設置頁面最大執行時間
方法:
1、在php.ini文件中 max_execution_time 代表了最大執行時間,其默認值為30。
2、set_time_limit(int seconds);這個函數可以設定,不過據說要在linux下才有用,而且在php.ini中的safe_mode = off
3、ini_set(‘max_execution_time’,最大時間);
502 bad gateway怎麼辦
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值適當增加。
計算的方式如下:如果服務器性能足夠好,且寬帶資源足夠充足,PHP腳本沒有系循環或BUG的話可以直接將 request_terminate_timeout設置成0s。0s的含義是讓PHP-CGI一直執行下去而沒有時間限制。如果做不到這一點,也就 是說PHP-CGI可能出現某個BUG,或者寬帶不夠充足或者其他的原因導致PHP-CGI假死那麼就建議給 request_terminate_timeout賦一個值,這個值可以根據服務器的性能進行設定。一般來說性能越好可以設置越高,20分鐘-30分 鍾都可以。
而max_children這個值又是怎麼計算出來的呢?這個值原則上是越大越好,php-cgi的進程多了就會處理的很快,排隊的請求就會很少。 設置max_children也需要根據服務器的性能進行設定,一般來說一台服務器正常情況下每一個php-cgi所耗費的內存在20M左右。
按照官方的答案,排查了相關的可能,並結合了網友的答案,得出了下面的解決辦法:
1、查看php fastcgi的進程數(max_children值)代碼:netstat -anpo | grep “php-cgi” | wc -l
5(假如顯示5)
2、查看當前進程,代碼:top觀察fastcgi進程數,假如使用的進程數等於或高於5個,說明需要增加(根據機器實際狀況而定)
3、調整/usr/local/php/etc/php-fpm.conf 的相關設置
value name=”max_children”10/value
value name=”request_terminate_timeout”60s/value
max_children最多10個進程,按照每個進程20MB內存,最多200MB。
request_terminate_timeout執行的時間為60秒,也就是1分鐘。
502 bad gateway怎麼解決
502badgateway要先找到nginx配置的路徑。
然後找到nginx所在的error日誌文件來查看具體原因。
如果是客戶端瀏覽器配置的問題,以360瀏覽器為例,出現502BadGateway可能是設置了代代理導致的。
取消瀏覽器代理之後,刷新一下就可以訪問了。
502BadGateway是一種報錯提示,這一錯誤並不意味着上游服務器已關閉(無響應網關/代理),而是上游服務器和網關/代理不同意的協議交換數據。
鑒於互聯網協議是相當清楚的,它往往意味着一個或兩個機器已不正確或不完全編程。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/251774.html