1、伺服器500錯誤 伺服器500錯誤是伺服器的內部錯誤, 可能原因1、程序語言錯誤,例如:ASP或者PHP語法錯誤;2、高並發導致,系統資源限制不能打開過多的文件所致;2、伺服器501錯誤伺服器不支持請求的功能,無法完成請求,伺服器無法識別請求方法時可能會返回此代碼。3、伺服器502錯誤 502錯誤是WEB伺服器故障,可能是由於程序進程不夠,請求的php-fpm已經執行,但是由於某種原因而沒有執行完畢,最終導致php-fpm進程終止。 可能原因:1、Nginx伺服器,php-cgi進程數不夠用;2、PHP執行時間過長;3、php-cgi進程死掉;4、伺服器503錯誤 伺服器目前無法使用,系統維護伺服器暫時的無法處理客戶端的請求,這只是暫時狀態。可以聯繫下伺服器提供商。5、伺服器504錯誤 伺服器504錯誤表示超時,是指客戶端所發出的請求沒有到達網關,請求沒有到可以執行的php-fpm,一般是與nginx.conf的配置有關。6、伺服器505錯誤伺服器不支持請求中所用的HTTP協議版本,一般的請款下瀏覽器的默認都是1.x的版本的,如果出現了HTTP1.1版本的,那麼你需要在Internet選項的高級下進行設置的。除了500錯誤可能是程序語言錯誤,其餘的報錯,都大概可以理解為伺服器出現問題 伺服器502錯誤。這是伺服器上的一個錯誤網關 ,因此說它是無效的,我們在出現了伺服器502錯誤問題的時候,最好是先清除下緩存或者是在伺服器上進行刷新試試的,因為502錯誤牽扯的問題也是很多的,最好是讓程序們來去在伺服器上下文章。 請注意,是持續一直502還是間歇性持續性的話麻煩檢查代碼,間歇性建議增加伺服器性能,以及php的最大子進程 同時注意防範cc攻擊 伺服器出現502是因為這是錯誤網關 ,它是無效的。如何解決這個問題呢,你可以試試下文的方法:1、清除緩存;2、在伺服器上刷新試試;3、檢查伺服器的鏈接:4、檢查伺服器的日誌;5、梳理網站代碼查找漏洞;6、換一台伺服器,給你推薦幾款性價比高的伺服器,如下所示,你可以參考考:bluehost Basic 內存 6 GB DDR3,獨享帶寬 5M ,流量 不計量,免費IP 1 ,價格為839元/月; bluehost Standard 內存 14 GB DDR3,獨享帶寬 5M ,流量 不計量,免費IP 1 ,價格為1139元/月;bluehost Elite 內存 22 GB DDR3,獨享帶寬 5M ,流量 不計量,免費IP 1 ,價格為1559元/月;bluehost Pro 內存 30 GB DDR3,獨享帶寬 5M ,流量 不計量,免費IP 1 ,價格為1799元/月;註:使用優惠碼MDD能夠享受一定的優惠 出現502的原因是:對用戶訪問請求的響應超時造成的,簡單來說 502 是報錯類型代碼 bad gateway 錯誤的網關。連接超時 我們向伺服器發送請求 由於伺服器當前鏈接太多,導致伺服器方面無法給於正常的響應,產生此類報錯。在最基本的級別上,502錯誤網關表示伺服器通信出現了問題。它涉及網關或代理伺服器之間的通信,這些網關或代理伺服器接受來自上游(或源)伺服器的無效響應。當上游伺服器和網關伺服器無法決定交換數據的協議,就會出現問題,因此無法顯示網站。502錯誤通常意味著在你的網站設置過程中出現了錯誤配置。具體分析有幾下幾點: 伺服器超載——如果伺服器耗盡內存,伺服器可能會崩潰,原因是站點上有大量訪問者或DDOS攻擊。 防火牆阻止請求——防火牆可能會阻止邊緣伺服器和上游伺服器之間的通信。某些DDoS保護系統可能會過度反應並阻止來自內容傳送系統的請求。 編程錯誤——有時網站代碼中的一個錯誤可能意味著請求不能得到正確的響應,從而導致出現這個錯誤。 網路錯誤——DNS問題、路由問題和ISP相關的問題也可以導致錯誤網關。 伺服器軟體超時——當Web伺服器需要更多時間來完成並且緩存工具達到其超時值時,也會發生此錯誤。慢查詢也會導致此問題。 解決辦法:1.提高 Web 伺服器的響應速度,也即減少內部的調用關係,可以把需要的頁面、素材或數據,緩存在內存中,可以是專門的緩存伺服器 ,也可以Web伺服器自身的緩存,提高響應速度;2.網路帶寬的問題,則對傳輸的數據包進行壓縮處理,或者向IDC申請增加帶寬; 3.屬於內部網路的故障或設置問題,也即內部網路擁塞,可能內部存在大量的數據調用或交互造成的,則需要優化內部網路傳輸或協議;4.另外很大的問題在MySQL資料庫這一塊,如果資料庫執行命令超時也會大延長php腳本的執行時間,導致 Nginx 等待超時。可以my.cnf的 slow log進行確認效能低下的sql語句是哪些,進行優化配置。資料庫的數據讀取造成前端伺服器 ,響應用戶的請求變慢,那麼必須提高資料庫的處理能力,若是只讀業務可以增加數據緩存的模式 或者增加資料庫備機,分散讀壓力; 若是寫的壓力,則可以考慮延遲寫的模式,想這個時候做數據寫分散肯定來不及。5.在發生錯誤時檢查Web伺服器日誌將是一個很好的起點。如果你是該網站的所有者,則可以檢查你的FQDN(完全限定的域名)是否正確解析。你還可以通過ping文本或traceroute檢查伺服器是否可訪問。 502一般是前端加了反向代理(如用了nginx代理或cdn等),代理伺服器向後端伺服器訪問時出錯導致的。對比代理上的訪問日誌和後端程序日誌看看吧。 1:php-cgi進程數不夠用 vim php-fpm.conf修改其中的2個參數(1)在安裝好使用過程中出現502問題,一般是因為默認php-cgi進程是5個,可能因為phpcgi進程不夠用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 將其中的max_children值適當增加這個數值是不確定的 需要我們自己算的,這個值原則上是越大越好,php-cgi的進程多了就會處理的很快,排隊的請求就會很少,減小出現502錯誤的機率。一般來說,一台伺服器的正常情況下每一個php-cgi要耗費的內存為20M左右。如果我就將此值設為80,那麼也就是說大概要耗費伺服器1600M內存。 查看一下當前系統中有多少個php-cgi進程在運行netstat -anpo | grep php-cgi | wc -l如果這個值接近你的在配置文件裡面設置的值,說明需要增加註:這要根據機器的實際情況而定,每個機器的硬體設施和環境不一樣參數為:&80&(2)另外一個參數就是php-cgi腳本的執行時間&0s&這裡寫0s的意思是讓php-cgi一直執行下去,沒有時間限制。注意:如果你做不到這一點,也就 是說你的PHP-CGI可能出現某個BUG,或者你的寬頻不夠充足或者其他的原因導致你的PHP-CGI假死那麼就建議你給 request_terminate_timeout賦一個值,這個值可以根據伺服器的性能進行設定。一般來說性能越好你可以設置越高,20分鐘-30分 鍾都可以。修改完這兩個參數,重啟一下php-cgi,看是否還出現502錯誤2: php執行時間長 php執行超時,修改/usr/local/php/etc/php.ini 將max_execution_time 改為300重啟一下php-cgi,看是否還出現502錯誤3: php-cgi進程死掉殺死其進程,重啟php-cgi 換一台伺服器就可以了 基本大部分是是性能問題 是不是請求頭過大導致的,比如 cookie 太多了,有些後端,比如 nginx 可能會限制請求頭的大小。 推薦閱讀:
1、伺服器500錯誤
伺服器500錯誤是伺服器的內部錯誤,
可能原因
1、程序語言錯誤,例如:ASP或者PHP語法錯誤;
2、高並發導致,系統資源限制不能打開過多的文件所致;
2、伺服器501錯誤
伺服器不支持請求的功能,無法完成請求,伺服器無法識別請求方法時可能會返回此代碼。
3、伺服器502錯誤
502錯誤是WEB伺服器故障,可能是由於程序進程不夠,請求的php-fpm已經執行,但是由於某種原因而沒有執行完畢,最終導致php-fpm進程終止。
可能原因:
1、Nginx伺服器,php-cgi進程數不夠用;
2、PHP執行時間過長;
3、php-cgi進程死掉;
4、伺服器503錯誤
伺服器目前無法使用,系統維護伺服器暫時的無法處理客戶端的請求,這只是暫時狀態。可以聯繫下伺服器提供商。
5、伺服器504錯誤
伺服器504錯誤表示超時,是指客戶端所發出的請求沒有到達網關,請求沒有到可以執行的php-fpm,一般是與nginx.conf的配置有關。
6、伺服器505錯誤
伺服器不支持請求中所用的HTTP協議版本,一般的請款下瀏覽器的默認都是1.x的版本的,如果出現了HTTP1.1版本的,那麼你需要在Internet選項的高級下進行設置的。
除了500錯誤可能是程序語言錯誤,其餘的報錯,都大概可以理解為伺服器出現問題
伺服器502錯誤。這是伺服器上的一個錯誤網關 ,因此說它是無效的,我們在出現了伺服器502錯誤問題的時候,最好是先清除下緩存或者是在伺服器上進行刷新試試的,因為502錯誤牽扯的問題也是很多的,最好是讓程序們來去在伺服器上下文章。
請注意,是持續一直502還是間歇性
持續性的話麻煩檢查代碼,間歇性建議增加伺服器性能,以及php的最大子進程
同時注意防範cc攻擊
伺服器出現502是因為這是錯誤網關 ,它是無效的。
如何解決這個問題呢,你可以試試下文的方法:
1、清除緩存;
2、在伺服器上刷新試試;
3、檢查伺服器的鏈接:
4、檢查伺服器的日誌;
5、梳理網站代碼查找漏洞;
6、換一台伺服器,給你推薦幾款性價比高的伺服器,如下所示,你可以參考考:
bluehost Basic 內存 6 GB DDR3,獨享帶寬 5M ,流量 不計量,免費IP 1 ,價格為839元/月;
bluehost Standard 內存 14 GB DDR3,獨享帶寬 5M ,流量 不計量,免費IP 1 ,價格為1139元/月;
bluehost Elite 內存 22 GB DDR3,獨享帶寬 5M ,流量 不計量,免費IP 1 ,價格為1559元/月;
bluehost Pro 內存 30 GB DDR3,獨享帶寬 5M ,流量 不計量,免費IP 1 ,價格為1799元/月;
註:使用優惠碼MDD能夠享受一定的優惠
出現502的原因是:
具體分析有幾下幾點:
解決辦法:
2.網路帶寬的問題,則對傳輸的數據包進行壓縮處理,或者向IDC申請增加帶寬;
3.屬於內部網路的故障或設置問題,也即內部網路擁塞,可能內部存在大量的數據調用或交互造成的,則需要優化內部網路傳輸或協議;
4.另外很大的問題在MySQL資料庫這一塊,如果資料庫執行命令超時也會大延長php腳本的執行時間,導致 Nginx 等待超時。可以my.cnf的 slow log進行確認效能低下的sql語句是哪些,進行優化配置。資料庫的數據讀取造成前端伺服器 ,響應用戶的請求變慢,那麼必須提高資料庫的處理能力,若是只讀業務可以增加數據緩存的模式 或者增加資料庫備機,分散讀壓力; 若是寫的壓力,則可以考慮延遲寫的模式,想這個時候做數據寫分散肯定來不及。
5.在發生錯誤時檢查Web伺服器日誌將是一個很好的起點。如果你是該網站的所有者,則可以檢查你的FQDN(完全限定的域名)是否正確解析。你還可以通過ping文本或traceroute檢查伺服器是否可訪問。
502一般是前端加了反向代理(如用了nginx代理或cdn等),代理伺服器向後端伺服器訪問時出錯導致的。對比代理上的訪問日誌和後端程序日誌看看吧。
1:php-cgi進程數不夠用
vim php-fpm.conf
修改其中的2個參數
(1)在安裝好使用過程中出現502問題,一般是因為默認php-cgi進程是5個,可能因為phpcgi進程不夠用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 將其中的max_children值適當增加
這個數值是不確定的 需要我們自己算的,這個值原則上是越大越好,php-cgi的進程多了就會處理的很快,排隊的請求就會很少,減小出現502錯誤的機率。
一般來說,一台伺服器的正常情況下每一個php-cgi要耗費的內存為20M左右。如果我就將此值設為80,那麼也就是說大概要耗費伺服器1600M內存。
查看一下當前系統中有多少個php-cgi進程在運行
netstat -anpo | grep php-cgi | wc -l
如果這個值接近你的在配置文件裡面設置的值,說明需要增加
註:這要根據機器的實際情況而定,每個機器的硬體設施和環境不一樣
參數為:&80&
(2)另外一個參數就是php-cgi腳本的執行時間
&0s&這裡寫0s的意思是讓php-cgi一直執行下去,沒有時間限制。
注意:如果你做不到這一點,也就 是說你的PHP-CGI可能出現某個BUG,或者你的寬頻不夠充足或者其他的原因導致你的PHP-CGI假死那麼就建議你給 request_terminate_timeout賦一個值,這個值可以根據伺服器的性能進行設定。一般來說性能越好你可以設置越高,20分鐘-30分 鍾都可以。
修改完這兩個參數,重啟一下php-cgi,看是否還出現502錯誤
2: php執行時間長
php執行超時,修改/usr/local/php/etc/php.ini 將max_execution_time 改為300
重啟一下php-cgi,看是否還出現502錯誤
3: php-cgi進程死掉
殺死其進程,重啟php-cgi
換一台伺服器就可以了
基本大部分是是性能問題
是不是請求頭過大導致的,比如 cookie 太多了,有些後端,比如 nginx 可能會限制請求頭的大小。