介紹
定義
由於臨時的伺服器維護或者過載,伺服器當前無法處理請求。這個狀況
是臨時的,並且將在一段時間以後恢復。如果能夠預計延遲時間,那么回響中可以包含一個Retry-After起頭用以標明這個延遲時間。如果沒有給出這個Retry-After信息,那么客戶端應當以處理500(Server Internal Error)回響的方式處理它。注意:503狀態碼的存在並不意味著必須在伺服器過載的時候使用它。某些伺服器只不過是希望拒絕某些客戶端的連線。
分析
出現503錯誤,其日誌都是記錄在%Systemroot%\System32\LogFiles\HTTPERR\httperr1.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(“請求”之意)等語句。解決方案:
要解決此問題,按照下列步驟操作:
1.驗證是否已為虛擬伺服器配置了應用程式池。默認的應用程式池是MSSharePointPortalAppPool。
請按照下列步驟來確定虛擬伺服器正在使用的應用程式池。
a.單擊“開始”,指向“管理工具”,然後單擊“Internet信息服務(IIS)管理器”。
b.展開“ServerName”,展開“Web站點”,右鍵單擊虛擬伺服器,然後單擊“屬性”。
c.單擊“主目錄”選項卡。為虛擬伺服器配置的應用程式池列在“應用程式池”框中。
d.單擊“確定”。
2、驗證應用程式池帳戶使用的密碼是否正確。IIS不會自動輪詢ActiveDirectory目錄服務中的密碼更改。如果應用程式池帳戶是一個域帳戶,其密碼已過期,則在為此帳戶重新指定一個新密碼後,您可能會收到本文“症狀”部分所描述的錯誤信息。
3、驗證應用程式池帳戶是伺服器上的IIS_WPG組和STS_WPG組的成員。
4、重新啟動IIS以回收應用程式池。
解決方法
您的 Web伺服器實際上處於“關閉維修”狀態。 它仍然在最低限度地運行, 因為它至少可以回響 503 狀態碼, 但全面服務是不可能的, 即您的網站不可用。 可能的原因有很多, 但一般來說, 是由於您的 Web伺服器操作員的人為干預。 通常您就應知道有人正在努力解決此問題,正常服務將被儘快恢復。
請和您網站的系統操作員聯繫,以確定為什麼服務停止了。 和我們比起來,他們將能更好地幫您解決這類錯誤。