云虚拟主机的CPU或内存使用率过高时会导致网站无法正常访问,本文介绍这种情况的可能原因和解决方案。

问题现象

在独享云虚拟主机上成功搭建网站并正常运行一段时间后,访问网站时出现无法正常访问的现象。

可能原因

云虚拟主机的站点在网站运行过程中可能被恶意攻击,或者主机站点的配置文件(例如.htaccess文件)配置错误时,使得云虚拟主机的CPU使用率或内存使用率过高,从而导致网站无法正常访问。
说明 引起网站无法正常访问的原因较多,本文以主机的CPU或内存使用率过高原因为例进行说明。更多信息,请参见网站无法访问

解决方案

本文的解决方案仅适用于独享云虚拟主机,以普通版Linux操作系统独享云虚拟主机为例进行详细介绍。

  1. 登录云虚拟主机管理页面
  2. 找到站点无法访问的独享云虚拟主机,单击对应操作列的管理
  3. 在左侧导航栏,单击主机信息
  4. 监控信息区域,查看云虚拟主机的CPU或内存满载(即使用率为100%)时的时间段或者时间点。
    本图示以云虚拟主机的CPU使用率达到100%为例,您可以将鼠标移动到CPU监控线上即可看到CPU使用率达到100%时对应的时间点为2023年2月15日10:05:00。cpu
  5. 监控信息区域的按来源IP统计页签下,将鼠标移动到CPU满载时的时间点,即可查看并记录连接数过高的IP地址或IP网段(即存在异常的IP地址或IP网段)。
    说明 将鼠标移动到CPU满载时的时间点,您也可以查看到连接时间、总连接数、来源IP数量以及每个IP地址的连接数量。
    本图示以2023年2月15日10:05:00时,连接数过高的IP地址(即TOP0:39.xxx.xxx.xxx)为例。IP地址
    • 如果存在异常IP地址,您需要屏蔽异常IP地址,请直接执行步骤6后继续执行步骤9
    • 如果存在某个IP网段异常,您需要使用连接数限制功能来限制该IP网段的并发连接数,请直接执行步骤7后继续执行步骤9
    • 如果存在大量不同网段的IP地址均异常,您需要使用连接数限制功能来限制每个IP地址的并发连接数,请直接执行步骤8后继续执行步骤9
  6. 可选:屏蔽异常IP地址。
    1. 在左侧导航栏,单击访问控制
    2. IP屏蔽页签下,单击添加IP
    3. 添加IP页面的IP区域,输入待屏蔽的异常IP地址,然后单击确认
    异常IP地址添加成功后,您可以在IP地址列表中查看到已添加的IP地址。屏蔽IP
  7. 可选:限制每个异常IP网段的并发连接数。
    1. 在左侧导航栏,单击访问控制
    2. 单击连接数限制页签。
    3. 连接数限制设置区域,单击[修改限制]
    4. 在弹出的修改限制页面,直接修改并发连接数限制,并单击高级配置后修改连接掩码为24。
      例如,如果并发连接数限制设置为10,连接掩码设置为24时,表示每个C段源IP最多支持10个连接。修改连接数
    5. 单击确认
  8. 可选:限制每个异常IP地址的并发连接数。
    1. 在左侧导航栏,单击访问控制
    2. 单击连接数限制页签。
    3. 连接数限制设置区域,单击[修改限制]
    4. 在弹出的修改限制页面,直接修改并发连接数限制,并单击高级配置后修改连接掩码为32。
      例如,如果并发连接数限制设置为10,连接掩码设置为32时,表示每个源IP最多支持10个连接。32掩码
    5. 单击确认
  9. 在左侧导航栏,单击站点信息,在服务器监控区域查看CPU使用率和内存使用率。
    • 如果查看云虚拟主机的CPU使用率和内存使用率仍然过高,请继续执行步骤10
    • 如果查看云虚拟主机的CPU使用率和内存使用率在正常范围内,操作结束。
    说明 关于云虚拟主机的CPU使用率和内存使用率是否过高或正常,需要您根据实际业务自行评估。
  10. 可选:检查.htaccess文件是否配置错误,并根据实际需求进行修改。
    以检查普通版Linux操作系统独享云虚拟主机.htaccess文件的配置为例,具体操作如下所示:
    1. 在左侧导航栏,选择文件管理 > 文件管理器
    2. 单击站点根目录,找到.htaccess文件后,然后单击对应操作列的查看
      文件管理
    3. 检查并修改.htaccess文件。
      例如.htaccess文件的具体内容如下所示:
      Options+FollowSymLinks
      IndexIgnore*/*
      RewriteEngine on
      # 目录如果存在,直接访问
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      # 如果目录不存在,则跳转到index.php
      RewriteRule.index.php

      检查上述.htaccess文件,发现RewriteRule.index.php配置项会将所有不存在的访问跳转到index.php中,造成网站访问的持续增多。基于该原因,您可以根据实际需求对RewriteRule.index.php配置项进行相应修改,或者直接注释即可。

    重要 为了有效预防因云虚拟主机的CPU或内存使用率满载而导致网站无法正常访问,建议您在云虚拟主机的CPU或内存使用率满载前,前往主机信息页面设置自定义监控报警功能。当云虚拟主机的CPU或内存使用率出现超过报警阈值的情况时,您可以在收到监控报警提示时根据本文解决方案进行操作。关于设置自定义监控报警功能的更多信息,请参见获取云虚拟主机的主机信息和站点信息