HTTP Error 503的原因是什么[残风社区详解]

2024年11月15日 23:02
有1个网友回答
网友(1):

503是一种HTTP状态码。英文名503 Service Unavailable与404(404 Service Unavailable)是同属一种网页状态出错码。前者是服务纳源梁器出错的一种返回状态,后者是网页程序没有相关结果后返回的一种状态,需要优化网站的时候通常需要制作404出错页以便网站整体优化。 由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。如果能够预计延迟时间,那么响应中可以包含一个 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,可能是因为请求时应用程序池队列已满而生成该错误。 网页出现503错误原因 1、网络管理员可能关闭应用程序池以执行维护。 2、当请求到达时应用程序池队列已满。 3、应用程序池标识没有使用预定义账户:网络服务,而自己配置了标识,但是配置的这个用户不属于 IIS_WPG 组 4、应用程序池启用了CPU监视,并且设置了 CPU 利用率超过一定百分比关闭应用程序池,而开发人员写的服务端页面( . asp ,.aspx )执行效率不高,会引起 CPU 的长时间占用,最终达到设置的百分比,从而引起应用程序池关闭 5、应用程序池的性能选项卡的裂宏请求队列限制所填的数值太小,默认为 1000 。 6、 web.config 的 system.web/httpRuntime 节点的 appRequestQueueLimit 属性设置的值太低。 虚拟主机站点503错误 主要原因有两点: 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以回收应用程序池。