定義
由于臨時的服務器維護或者過載,服務器當前無法處理請求。這個狀況
是臨時的,并且将在一段時間以後恢複。如果能夠預計延遲時間,那麼響應中可以包含一個Retry-After起頭用以标明這個延遲時間。
如果沒有給出這個Retry-After信息,那麼客戶端應當以處理500(Server Internal Error)響應的方式處理它。注意:503狀态碼的存在并不意味着必須在服務器過載的時候使用它。某些服務器隻不過是希望拒絕某些客戶端的連接。
分析
出現503錯誤,其日志都是記錄在%Systemroot%System32LogFilesHTTPERRhttperr1.log中。
其中的s-reason項:
1、若為AppShutdown,可能是由于CPU占用率太高導緻自動關閉應用程序池。
2、若為AppOffline,可能是由于應用程序标識出錯引起的。
3、若為Disabled,可能是由管理員手工關閉應用程序池引起的。
4、若為QueueFull,可能是因為請求時應用程序池隊列已滿而生成該錯誤。
HTTP循環
任何客戶端在和您的網絡服務器通訊時,都需經過以下循環:
從您站點的IP名稱(即您的網頁地址-URL,不帶起始的‘http://')獲得一個IP地址。這個對應關系(即由IP名稱向IP地址轉換的對應關系)由域名服務器(DNSs)提供。
打開一個IP socket(套接字)連接到該IP地址。通過該socket寫HTTP數據流。從您的網絡服務器接受響應的HTTP數據流。該數據流包括狀态編碼,其值取決于HTTP協議。
解析該數據流得到狀态編碼和其他有用信息。該錯誤在以上所述的最後一步生成,即當客戶端收到HTTP狀态編碼并識别其為‘503’時。
出現原因
網頁出現
1、網絡管理員可能關閉應用程序池以執行維護。
2、當請求到達時應用程序池隊列已滿。
3、應用程序池标識沒有使用預定義賬戶:網絡服務,而自己配置了标識,但是配置的這個用戶不屬于IIS_WPG組
4、應用程序池啟用了CPU監視,并且設置了CPU利用率超過一定百分比關閉應用程序池,而開發人員寫的服務端頁面(.asp,.aspx)執行效率不高,會引起CPU的長時間占用,最終達到設置的百分比,從而引起應用程序池關閉
5、應用程序池的性能選項卡的請求隊列限制所填的數值太小,默認為1000。
6、web.config的system.web/httpRuntime節點的appRequestQueueLimit屬性設置的值太低。
主機站點
主要原因有兩點:
1、該站點正在被攻擊。對于最新型的攻擊,其實是ddos的一種派生,原理在于找數千個IP,同時向服務器的apache發出請求,然後立即斷開,讓apache處于等待狀态,緻使apache線程全部被填滿,緻使服務器死機。
因此,為了保證大多數客戶的利益,我們給每個空間,作出了每19秒64個php請求的限制。注意,是php請求,一般的圖片請求和html請求不包括在内。
2、該程序占用的php線程過多,有的程序沒有進行好優化處理,一個點擊即可産生數個,甚至數十個php線程。
這樣的話,幾個點擊就可以把該時段的64個php線程全部填滿了。因此出現503錯誤。建議優化一下程序,盡量少用require(“請求”之意)等語句。解決方案:
要解決此問題,按照下列步驟操作:
- 驗證是否已為虛拟服務器配置了應用程序池。默認的應用程序池是MSSharePointPortalAppPool。
請按照下列步驟來确定虛拟服務器正在使用的應用程序池。
a.單擊“開始”,指向“管理工具”,然後單擊“Internet信息服務(IIS)管理器”。
b.展開“ServerName”,展開“Web站點”,右鍵單擊虛拟服務器,然後單擊“屬性”。
c.單擊“主目錄”選項卡。為虛拟服務器配置的應用程序池列在“應用程序池”框中。
d.單擊“确定”。
2.驗證應用程序池帳戶使用的密碼是否正确。IIS不會自動輪詢ActiveDirectory目錄服務中的密碼更改。
如果應用程序池帳戶是一個域帳戶,其密碼已過期,則在為此帳戶重新指定一個新密碼後,您可能會收到本文“症狀”部分所描述的錯誤信息。
3.驗證應用程序池帳戶是服務器上的IIS_WPG組和STS_WPG組的成員。
4.重新啟動IIS以回收應用程序池。我們可以用iis服務器監控工具來監控此錯誤:
- 打開iis7服務器監控工具:
2、勾選“開啟503錯誤監控”并點擊“執行”即可:
解決方法
您的Web服務器實際上處于“關閉維修”狀态。
它仍然在最低限度地運行,因為它至少可以響應503狀态碼,但全面服務是不可能的,即您的網站不可用。可能的原因有很多,但一般來說,是由于您的Web服務器操作員的人為幹預。
通常您就應知道有人正在努力解決此問題,正常服務将被盡快恢複。
請和您網站的系統操作員聯系,以确定為什麼服務停止了。
和我們比起來,他們将能更好地幫您解決這類錯誤。