文档中心 > 云服务器 ECS

快速排查无法打开 ECS 实例上运行的网站

更新时间: 访问次数:2440

免责声明: 本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。

概述

无法打开网站时,应该先搜索排查报错的含义,再排查80端口状态和排查Web服务状态。本文提供快速排查方法,更详细的排查过程请参见无法访问ECS上的网站

详细信息

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

本文提供Linux系统和Windows系统中运行的网站无法访问的排查思路。

无法访问Linux实例上运行的网站

此处以CentOS 7系统为例,请根据您的实际情况选择。

排查80端口不可用的情况

  1. 执行以下命令,查看TCP 80端口是否被监听。
    netstat -an | grep 80
    系统显示类似如下,如果返回以下任意一种结果,说明已启动TCP 80端口的Web服务。
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN # 全网监听
    tcp        0      0 127.0.0.1:80            0.0.0.0:*               LISTEN # 本机监听
    说明:本机127.0.0.1监听会导致外网无法访问Web服务,只有本机能访问,需修改为全网监听。
  2. 如果第一步检查无异常,可执行以下操作。如果有异常,请参见排查Web服务不可用情况
    1. 查看实例安全组是否放行80端口,具体操作请参见添加安全组规则
    2. 查看实例iptables是否放行80端口。
    3. 使用telnet和traceroute命令跟踪80端口的连通情况,具体操作请参见能Ping通但端口不通时的端口可用性探测说明
  3. 查看云服务器带宽是否充足,具体操作请参见Linux实例系统负载的查询及分析

排查Web服务不可用情况

  1. 登录Liunx系统的ECS实例,具体登录方法请参见使用管理终端连接Linux实例
  2. 查看Web服务日志。
  3. 使用top命令查看实例运行状态,查看是否有异样进程。
  4. 在控制台查看实例监控信息,查看实例带宽是否充足,若不足,可尝试升级实例带宽。
  5. 查看实例CPU、内存是否不足,具体操作步骤请参见云服务器ECS Linux系统CPU占用率较高问题排查思路
  6. 查看实例的80端口是否有过多的TCP连接。
  7. 执行以下命令,统计TCP连接数。
    netstat -anp |grep tcp |wc -l
  8. 对比/etc/sysctl.conf配置文件中net.ipv4.tcp_max_tw_buckets参数的最大值,查看是否有超出情况。若超出,则执行以下操作。
    1. 执行vi /etc/sysctl.conf命令编辑文件,查询net.ipv4.tcp_max_tw_buckets参数。如果确认连接使用很高,容易超出限制,则根据现场情况,增加net.ipv4.tcp_max_tw_buckets参数值的大小。
    2. 执行sysctl -p命令,使配置生效。

无法访问Windows实例上运行的网站

此处以Windows Server 2008系统为例,请根据您的实际情况选择。

排查80端口不可用的情况

  1. 执行以下命令,查看TCP 80端口是否被监听。
    netstat -ano | findstr :80
    系统显示类似如下,如果返回以下任意一种结果,说明已启动TCP 80端口的Web服务。
    TCP    0.0.0.0:80           0.0.0.0:0              LISTENING       1172 # 表示全网监听
    TCP    127.0.0.1:80         0.0.0.0:0              LISTENING       1172 # 表示本地监听
    说明:本机监听会导致外网无法访问Web服务只有本机能访问,可执行以下命令,修改为全网监听。
    netsh http delete iplisten ipaddress= 127.0.0.1:80
  2. 如果第一步检查无异常,可执行以下操作。如果有异常,请参见排查Web服务不可用情况
    1. 查看实例安全组是否放行80端口,具体操作请参见添加安全组规则
    2. 查看实例防火墙是否放行80端口,具体操作请参见Windows防火墙限制端口/IP/应用访问的方法以及例外的配置
    3. 使用telnet和tracert命令跟踪80端口的连通情况,具体操作请参见能Ping通但端口不通时的端口可用性探测说明
  3. 查看云服务器带宽是否充足,具体操作请参见Windows实例带宽和CPU跑满或跑高排查

排查Web服务不可用情况

  1. 登录Windows系统的ECS实例。
  2. 查看Web服务日志,如Windows Server 2008 IIS服务日志路径为“%SystemDrive%\inetpub\logs\LogFiles\W3SVC4”。
  3. 通过任务管理器查看实例运行状态,查看是否有异样进程。
  4. 在控制台查看实例监控信息,查看实例带宽是否充足,若不足,可尝试升级实例带宽。
  5. 查看实例的CPU、内存是否耗尽。请参见Windows实例带宽和CPU跑满或跑高排查
  6. 参考以下步骤,查看实例80端口是否有过多的TCP连接。
    1. 依次执行以下命令,统计TCP连接数。
      netstat -n |find /i "time_wait" /c
      netstat -n |find /i "close_wait" /c
      netstat -n |find /i "established" /c
    2. 统计TCP连接数过高时,参考以下操作步骤,调整TcpTimedWaitDelay为30s,其默认值是4分钟(240s)。
      1. 打开CMD,执行regedit命令。
      2. 选择HKEY_LOCAL_MACHINE>SYSTEM>CurrentControlSet>Services>TCPIP>Parameters,根据如下情况进行设置。
        • 如果无TcpTimedWaitDelay项参数,则执行以下操作。
          1. 右键单击Parameters,然后依次选择新建>DWORD (32-位)值
          2. 输入TcpTimedWaitDelay,按回车键确认。
        • 如果存在TcpTimedWaitDelay项参数,右键单击TcpTimedWaitDelay,单击修改 ,勾选十进制,数值数据输入30,单击确定

相关文档

引发网站访问异常的相关因素及症状很多,如果您需要了解更多ECS实例中网站无法访问的原因,请参见访问ECS实例异常时的因素

适用于

  • 云服务器ECS

FAQ

关于此文档暂时还没有FAQ
返回
顶部