nginx503伺服器異常怎麼解決
⑴ 為什麼阿里雲ecs伺服器老是出現503錯誤,每天都要幾次 好煩
503是因為伺服器資源過載而無法處理請求時發出的錯誤。。
此情況可能性有很多,需要排查:
1、伺服器資源不夠了,需要擴展伺服器。。如訪問量過大;
2、伺服器配置不正確,如php配置問題而導致並發處理能力不夠,或NGINX配置問題等
3、網站程序中可能有死循環,sql語句不規范,查詢浪費的資源過大等
⑵ 503 service unavailable怎麼解決 nginx
首先在記事本文檔中寫入如下內容
@echo off
iisreset
然後保存為.bat的形式(注意名字不要以iisreset命名)
打開計劃任務,添加計劃任務
按著提示一步一步下去
選擇瀏覽,定位到你的腳本的文件處
選擇每天,下一步
輸入伺服器密碼
勾選圖中所示,進入高級設置
選擇日程安排-〉高級選 項
勾上重復任務,選擇你要每隔多長時間執行一行IIS重啟的腳本,持續時間要比重復任務時間要長,按確定就可以實現定時重啟IIS了!
⑶ 打開網頁後出現503 service unavailable等字樣,什麼意思
這是由於網站超過了iis限製造成的,由於2003的操作系統在提示IIS過多時並非像2000系統提示「鏈接人數過多」,而是提示"Service Unavailable",出現這種情況是由於網站超過了系統資源限製造成的,主要是程序佔用資源太多。
解決辦法:
增加IIS連接數;
增加網站的資源;
修改程序錯誤。
拓展資料:
503是一種HTTP狀態碼。英文名503 Service Unavailable與404(404 Not Found)是同屬一種網頁狀態出錯碼。前者是伺服器出錯的一種返回狀態,後者是網頁程序沒有相關的結果後返回的一種狀態,需要優化網站的時候通常需要製作404出錯頁以便網站整體優化。
由於臨時的伺服器維護或者過載,伺服器當前無法處理請求。這個狀況是臨時的,並且將在一段時間以後恢復。如果能夠預計延遲時間,那麼響應中可以包含一個Retry-After起頭用以標明這個延遲時間。
對於最新型的攻擊,其實是ddos的一種派生,原理在於找數千個IP,同時向伺服器的apache發出請求,然後 立即斷開,讓apache處於等待狀態,致使apache線程全部被填滿,致使伺服器死機。因此,為了保證大多數客戶的利益,我們給每個 空間,作出了每19秒64個php請求的限制。注意,是php請求,一般的圖片請求和html請求不包括在內。
如果沒有給出這個Retry-After信息,那麼客戶端應當以處理500(Server Internal Error)響應的方式處理它。注意:503狀態碼的存在並不意味著必須在伺服器過載的時候使用它。某些伺服器只不過是希望拒絕某些客戶端的連接。
503錯誤—網路
⑷ 502 Bad Gateway
可以嘗試清除瀏覽器緩存 訪問一下你的FTP看是否可以登陸 產生原因 伺服器(不一定是Web伺服器)是作為網關或代理,以滿足客戶的要求(如Web瀏覽器或我們的CheckUpDown機器人)來訪問所請求的URL 。此伺服器收到無效響應從上游伺服器訪問履行它的要求。 固定502錯誤 一般這個問題是由於不良的IP之間的溝通後端計算機,包括您可能嘗試訪問的在Web伺服器上的網站。在分析這個問題,您應該清除瀏覽器緩存完全。 如果您上網時在您嘗試訪問的所有網站上都看這個問題,有兩種可能 1 )你的ISP了重大設備故障/過載或 2 )有問題的內部互聯網連接如您的防火牆無法正常運作。 在第一種情況下,只有您的ISP可以幫助您。在第二種情況下,你需要解決什麼,那就是阻止你進入互聯網。 如果您只有在部分嘗試訪問的網站中出現此問題,那就很可能是一個問題,即這些網站之一,其設備故障或超載。聯系網站的管理員。
==========
一些運行在Nginx上的網站有時候會出現「502 Bad Gateway」錯誤,有些時候甚至頻繁的出現。以下是從Google搜集整理的一些Nginx 502錯誤的排查方法,供參考:
Nginx 502錯誤的原因比較多,是因為在代理模式下後端伺服器出現問題引起的。這些錯誤一般都不是nginx本身的問題,一定要從後端找原因!但nginx把這些出錯都攬在自己身上了,著實讓nginx的推廣者備受置疑,畢竟從字眼上理解,bad gateway?不就是bad nginx嗎?讓不了解的人看到,會直接把責任推在nginx身上,希望nginx下一個版本會把出錯提示寫稍微友好一些,至少不會是現在簡單的一句 502 Bad Gateway,另外還不忘附上自己的大名。
Nginx 502的觸發條件
502錯誤最通常的出現情況就是後端主機當機。在upstream配置里有這么一項配置:proxy_next_upstream,這個配置指定了 nginx在從一個後端主機取數據遇到何種錯誤時會轉到下一個後端主機,里頭寫上的就是會出現502的所有情況拉,默認是error timeout。error就是當機、斷線之類的,timeout就是讀取堵塞超時,比較容易理解。我一般是全寫上的:
proxy_next_upstream error timeout invalid_header http_500 http_503;不過現在可能我要去掉http_500這一項了,http_500指定後端返回500錯誤時會轉一個主機,後端的jsp出錯的話,本來會列印一堆 stacktrace的錯誤信息,現在被502取代了。但公司的程序員可不這么認為,他們認定是nginx出現了錯誤,我實在沒空跟他們解釋502的原理 了……
503錯誤就可以保留,因為後端通常是apache resin,如果apache死機就是error,但resin死機,僅僅是503,所以還是有必要保留的。
解決辦法
遇到502問題,可以優先考慮按照以下兩個步驟去解決。
1、查看當前的PHP FastCGI進程數是否夠用:
netstat -anpo | grep "php-cgi" | wc -l如果實際使用的「FastCGI進程數」接近預設的「FastCGI進程數」,那麼,說明「FastCGI進程數」不夠用,需要增大。
2、部分PHP程序的執行時間超過了Nginx的等待時間,可以適當增加nginx.conf配置文件中FastCGI的timeout時間,例如:
......
http
{
......
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
......
}
......php.ini中memory_limit設低了會出錯,修改了php.ini的memory_limit為64M,重啟nginx,發現好了,原來是PHP的內存不足了。
如果這樣修改了還解決不了問題,可以參考下面這些方案:
一、max-children和max-requests
一台伺服器上運行著nginx php(fpm) xcache,訪問量日均 300W pv左右
最近經常會出現這樣的情況: php頁面打開很慢,cpu使用率突然降至很低,系統負載突然升至很高,查看網卡的流量,也會發現突然降到了很低。這種情況只持續數秒鍾就恢復了
檢查php-fpm的日誌文件發現了一些線索
Sep 30 08:32:23.289973 [NOTICE] fpm_unix_init_main(), line 271: getrlimit(nofile): max:51200, cur:51200
Sep 30 08:32:23.290212 [NOTICE] fpm_sockets_init_main(), line 371: using inherited socket fd=10, 「127.0.0.1:9000″
Sep 30 08:32:23.290342 [NOTICE] fpm_event_init_main(), line 109: libevent: using epoll
Sep 30 08:32:23.296426 [NOTICE] fpm_init(), line 47: fpm is running, pid 30587在這幾句的前面,是1000多行的關閉children和開啟children的日誌
原來,php-fpm有一個參數 max_requests,該參數指明了,每個children最多處理多少個請求後便會被關閉,默認的設置是500。因為php是把請求輪詢給每個 children,在大流量下,每個childre到達max_requests所用的時間都差不多,這樣就造成所有的children基本上在同一時間 被關閉。
在這期間,nginx無法將php文件轉交給php-fpm處理,所以cpu會降至很低(不用處理php,更不用執行sql),而負載會升至很高(關閉和開啟children、nginx等待php-fpm),網卡流量也降至很低(nginx無法生成數據傳輸給客戶端)
解決問題很簡單,增加children的數量,並且將 max_requests 設置未 0 或者一個比較大的值:
打開 /usr/local/php/etc/php-fpm.conf
調大以下兩個參數(根據伺服器實際情況,過大也不行)
<value name=」max_children」>5120</value>
<value name=」max_requests」>600</value>然後重啟php-fpm。
二、增加緩沖區容量大小
將nginx的error log打開,發現「pstream sent too big header while reading response header from upstream」這樣的錯誤提示。查閱了一下資料,大意是nginx緩沖區有一個bug造成的,我們網站的頁面消耗佔用緩沖區可能過大。參考老外寫的修 改辦法增加了緩沖區容量大小設置,502問題徹底解決。後來系統管理員又對參數做了調整隻保留了2個設置參數:client head buffer,fastcgi buffer size。
三、request_terminate_timeout
如果主要是在一些post或者資料庫操作的時候出現502這種情況,而不是在靜態頁面操作中常見,那麼可以查看一下php-fpm.conf設置中的一項:
request_terminate_timeout
這個值是max_execution_time,就是fast-cgi的執行腳本時間。
0s
0s為關閉,就是無限執行下去。(當時裝的時候沒仔細看就改了一個數字)
發現,問題解決了,執行很長時間也不會出錯了。
優化fastcgi中,還可以改改這個值5s 看看效果。
php-cgi進程數不夠用、php執行時間長、或者是php-cgi進程死掉,都會出現502錯誤。
原文:http://www.ha97.com/4004.html
---★ 本文轉摘自『IT學習者』→ http://www.itlearner.com/article/4814
⑸ 伺服器返回503 代碼怎麼辦
503是一種HTTP狀態碼,是伺服器出錯的一種返回狀態,由於臨時的伺服器維護或者過載,伺服器當前無法處理請求。這個狀況是臨時的,並且將在一段時間以後恢復。伺服器返回503主要通過一下方法解決:
首先要檢查你是否關閉了應用程序池。每個網站都對應了一個應用程序池(IIS伺服器是如此),當然他們可能是相同的應用程序池,也能是不同的,查看出現503錯誤網站對應的程序池是否開啟。
如果沒有關閉應用程序池,那就要看看是否請求到達時應用程序池隊列已滿。每個網站都有其最大的負載量,當訪問請求達到這個值的時候就會出現503錯誤,解決辦法可以加大請求隊列,默認值為1000。
還有一種可能,應用程序池標識沒有使用預定義賬戶:網路服務,而自己配置了標識,但是配置的這個用戶不屬於IIS_WPG組,遇到這種情況,可以改變網站的 應用程序池路徑,把它改為屬於IIS_WPG組的應用程序池。
還有就是CPU佔用率太高,而且應用程序池啟用了CPU監視,設置了CPU利用率超過一定百分比關閉應用程序池,而開發人員寫的服務端頁面(.asp,.aspx)執行效率不高,會引起CPU的長時間佔用,最終達到設置的百分比,從而引起應用程序池關閉。遇到此種情況可以重新啟動應用程序池即可。
⑹ nginx 503錯誤是什麼原因
proxy_next_upstream error timeout invalid_header http_500 http_503;
或者嘗試設置:
large_client_header_buffers 4 32k;
⑺ 上游服務狀態異常503怎麼回事
咨詢記錄 · 回答於2021-12-27
⑻ nginx8503錯誤碼
網頁狀態出錯碼。
錯誤。單個ip並發設置過小會導致503報錯。所以盡量避免這種情況。
503是一種HTTP狀態碼,由於臨時的伺服器維護或者過載,伺服器當前無法處理請求。這個狀況是臨時的,並且將在一段時間以後恢復。一般來說,出現503錯誤多半是因網站訪問量大,造成了流量超限或者並發數大引起的資源超限出現的錯誤。解決的方法一個是升級空間到更佳配置,要麼就是檢查網站系統程序,使之更佳優化。
⑼ 出現503錯誤 怎麼辦
出現503錯誤原因及解決辦法
原因:web伺服器不能處理HTTP請求,可能是臨時超載或者是伺服器進行維護。
解決辦法:用戶需要等待伺服器的臨時處理。在這種狀態下,一些伺服器可以簡單的拒絕socket連接,否則會發生內容不一致的錯誤。
503錯誤在HTTP周期的詳述:
1、從站點獲得IP地址;
2、通過IP地址打開socket連接;
3、通過socket連接寫入HTTP數據流;
4、等待響應,返回的數據流。該數據流包含由HTTP協議決定的狀態代碼值。然後解析數據流狀態代碼和其它信息。
HTTP的503狀態碼
503是一種HTTP狀態碼。英文名503 Service Unavailable與404(404 Not Found)是同屬一種網頁狀態出錯碼。
前者是伺服器出錯的一種返回狀態,後者是網頁程序沒有相關的結果後返回的一種狀態,需要優化網站的時候通常需要製作404出錯頁以便網站整體優化。HTTP錯誤503發生的原因有多種,但通常意味著伺服器無法在需要時發送請求的資源。