网站出现503错误的原因和解决办法

文章类型:常见问题    发表2015-04-27   文章编辑:怒熊网络 · 一站式互联网+技术服务商!   阅读:660

网站出现503错误,很多站长都会比较担心网站的安全情况。事实上网站的503错误,不是非常严重的情况。那么网站发生503错误需要如何进行操作呢?想要解决这个问题,就需要对503页面的基本情况进行了解,从而彻底解决503的操作问题。

什么是503错误:

503错误实际上是一种HTTP状态码。英文名503 Service Unavailable。它是一种网页状态出错码。当服务器出错时呈现出来的一种返回状态。由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。如果能够预计延迟时间,那么响应中可以包含一个 Retry-After起头用以标明这个延迟时间。如果没有给出这个 Retry-After信息,那么客户端应当以处理500(Server Internal Error)响应的方式处理它。但是并不是说503状态码的存在并不意味着服务器在过载的时候必须使用它。它只是某些服务器拒绝客户端的连接。

503产生的原因:

造成503错误原因有很多,但是主要有以下几种情况。

1、网络管理员可能关闭应用程序池以执行维护。

2、当请求到达时应用程序池队列已满。

3、应用程序池标识没有使用预定义账户:网络服务,而自己配置了标识,但是配置的这个用户不属于IIS_WPG组。

4、应用程序池启用了CPU监视,并且设置了CPU利用率超过一定百分比关闭应用程序池,而开发人员写的服务端页面(.asp,.aspx)执行效率不高,会引起CPU的长时间占用,最终达到设置的百分比,从而引起应用程序池关闭

5、应用程序池的性能选项卡的请求队列限制所填的数值太小,默认为1000。

6、web.config的system.web/httpRuntime节点的appRequestQueueLimit属性设置的值太低。

如果虚拟主机站点出现503错误,主要原因有两点:即该站点正在被攻击。对于最新型的攻击,其实是ddos的一种派生,原理在于找数千个IP,同时向服务器的apache发出请求,然后立即断开,让apache处于等待状态,致使apache线程全部被填满,致使服务器死机。因此,为了保证大多数客户的利益,我们给每个 空间,作出了每19秒64个php请求的限制。注意,是php请求,一般的图片请求和html请求不包括在内。

另外一个原因就是该程序占用的php线程过多,有的程序没有进行好优化处理,一个点击即可产生数个,甚至数十个php线程。这样的话,几个点击就可以把该时段的64个php线程全部填满了。因此出现503错误。怒熊网【重庆网站建设】建议优化一下程序,尽量少用require('请求”之意)等语句。

怎么解决503问题:

按照下列步骤操作: 1.验证是否已为虚拟服务器配置了应用程序池。默认的应用程序池是MSSharePointPortalAppPool。

请按照下列步骤来确定虚拟服务器正在使用的应用程序池。

a.单击'开始”,指向'管理工具”,然后单击'Internet信息服务(IIS)管理器”。

b.展开'ServerName”,展开'Web站点”,右键单击虚拟服务器,然后单击'属性”。

c.单击'主目录”选项卡。为虚拟服务器配置的应用程序池列在'应用程序池”框中。

d.单击'确定”。

2、验证应用程序池帐户使用的密码是否正确。IIS不会自动轮询ActiveDirectory目录服务中的密码更改。如果应用程序池帐户是一个域帐户,其密码已过期,则在为此帐户重新指定一个新密码后,您可能会收到本文'症状”部分所描述的错误信息。

3、验证应用程序池帐户是服务器上的IIS_WPG组和STS_WPG组的成员。

4、重新启动IIS以回收应用程序池。