503

HTTP狀態碼

503是一種HTTP狀態碼。英文名為503 Service Unavailable,與404(404 Not Found)同屬一種網頁狀態出錯碼。前者是伺服器出錯的一種返回狀態,後者是網頁程序沒有相關結果后返回的一種狀態。

需要優化網站的時候通常須要製作404出錯頁以便網站整體優化。原因有可能是ISAPI篩選器沒有正常載入導致。

系統設置


503
503
WINDOWSServer系統
直接停止IIS應用程序池;
其他系統
ob_start();
header('HTTP/1.1503ServiceTemporarilyUnavailable');
header('Status:503ServiceTemporarilyUnavailable');
header('Retry-After:Sat,8Oct201518:27:00GMT');
header('X-Powered-By:');
?>
503ServiceTemporarilyUnavailable

ServiceTemporarilyUnavailable

HTTP循環


任何客戶端在和您的網路伺服器通訊時,都需經過以下循環:
從您站點的IP名稱(即您的網頁地址-URL,不帶起始的‘http://')獲得一個IP地址。這個對應關係(即由IP名稱向IP地址轉換的對應關係)由域名伺服器(DNSs)提供。打開一個IPsocket(套接字)連接到該IP地址。通過該socket寫HTTP數據流。從您的網路伺服器接受響應的HTTP數據流。該數據流包括狀態編碼,其值取決於HTTP協議。解析該數據流得到狀態編碼和其他有用信息。該錯誤在以上所述的最後一步生成,即當客戶端收到HTTP狀態編碼並識別其為‘503’時。

出現原因


503
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伺服器操作員的人為干預。通常就應知道有人正在努力解決此問題,正常服務將被儘快恢復。
請和網站的系統操作員聯繫,以確定為什麼服務停止了。他們將能更好地幫您解決這類錯誤。
  • 目錄