当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Service Temporarily Unavailable的503错误是怎么回事?

    栏目:Linux/apache问题 时间:2019-07-31 09:01

    主要原因有两点:
      1、该站点正在被攻击。对于最新型的攻击,其实是ddos的一种派生,原理在于找数千个IP,同时向服务器的apache发出请求,然后 立即断开,让apache处于等待状态,致使apache线程全部被填满,致使服务器死机。因此,为了保证大多数客户的利益,我们给每个 空间,作出了每19秒64个php请求的限制。注意,是php请求,一般的图片请求和html请求不包括在内。
      2、该程序占用的php线程过多,有的程序没有进行好优化处理,一个点击即可产生数个,甚至数十个php线程。这样的话,几个点击就可以把该时段的64个php线程全部填满了。因此出现503错误。建议优化一下程序,尽量少用require(“请求”之意)等语句。解决方案:
    可以使用相关工具、程序来解决:
    1、IIS7网站批量管理,错误修复 - 勾选 自动修复网站503错误
    2、IIS7服务器助手,安全设置 - CC攻击防御 - 勾选CC防御 前面那输入框设置800
    此设置作用为:当某个IP访问超过800次就封禁,可处理线程过多的问题
     要解决此问题,也可以按照下列步骤操作:
      1.验证是否已为虚拟服务器配置了应用程序池。默认的应用程序池是MSSharePointPortalAppPool。
      请按照下列步骤来确定虚拟服务器正在使用的应用程序池。
      a.单击“开始”,指向“管理工具”,然后单击“Internet信息服务(IIS)管理器”。
      b.展开“ServerName”,展开“Web站点”,右键单击虚拟服务器,然后单击“属性”。
      c.单击“主目录”选项卡。为虚拟服务器配置的应用程序池列在“应用程序池”框中。
      d.单击“确定”。
      2、验证应用程序池帐户使用的密码是否正确。IIS不会自动轮询ActiveDirectory目录服务中的密码更改。如果应用程序池帐户是一个域帐户,其密码已过期,则在为此帐户重新指定一个新密码后,您可能会收到本文“症状”部分所描述的错误信息。
      3、验证应用程序池帐户是服务器上的IIS_WPG组和STS_WPG组的成员。
      4、重新启动IIS以回收应用程序池。