免责声明: 本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。
概述
无法打开网站时,应该先搜索排查报错的含义,再排查80端口状态和排查Web服务状态。本文提供快速排查方法,更详细的排查过程请参见无法访问ECS上的网站。
详细信息
阿里云提醒您:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
- 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
本文提供Linux系统和Windows系统中运行的网站无法访问的排查思路。
无法访问Linux实例上运行的网站
此处以CentOS 7系统为例,请根据您的实际情况选择。
排查80端口不可用的情况
- 执行以下命令,查看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服务,只有本机能访问,需修改为全网监听。
- 如果第一步检查无异常,可执行以下操作。如果有异常,请参见排查Web服务不可用情况。
- 查看实例安全组是否放行80端口,具体操作请参见添加安全组规则。
- 查看实例iptables是否放行80端口。
- 使用telnet和traceroute命令跟踪80端口的连通情况,具体操作请参见能Ping通但端口不通时的端口可用性探测说明。
- 查看云服务器带宽是否充足,具体操作请参见Linux实例系统负载的查询及分析。
排查Web服务不可用情况
- 登录Liunx系统的ECS实例,具体登录方法请参见使用管理终端连接Linux实例。
- 查看Web服务日志。
- 使用
top
命令查看实例运行状态,查看是否有异样进程。
- 在控制台查看实例监控信息,查看实例带宽是否充足,若不足,可尝试升级实例带宽。
- 查看实例CPU、内存是否不足,具体操作步骤请参见云服务器ECS Linux系统CPU占用率较高问题排查思路。
- 查看实例的80端口是否有过多的TCP连接。
- 执行以下命令,统计TCP连接数。
netstat -anp |grep tcp |wc -l
- 对比
/etc/sysctl.conf
配置文件中net.ipv4.tcp_max_tw_buckets
参数的最大值,查看是否有超出情况。若超出,则执行以下操作。
- 执行
vi /etc/sysctl.conf
命令编辑文件,查询net.ipv4.tcp_max_tw_buckets
参数。如果确认连接使用很高,容易超出限制,则根据现场情况,增加net.ipv4.tcp_max_tw_buckets
参数值的大小。
- 执行
sysctl -p
命令,使配置生效。
无法访问Windows实例上运行的网站
此处以Windows Server 2008系统为例,请根据您的实际情况选择。
排查80端口不可用的情况
- 执行以下命令,查看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
- 如果第一步检查无异常,可执行以下操作。如果有异常,请参见排查Web服务不可用情况。
- 查看实例安全组是否放行80端口,具体操作请参见添加安全组规则。
- 查看实例防火墙是否放行80端口,具体操作请参见Windows防火墙限制端口/IP/应用访问的方法以及例外的配置。
- 使用telnet和tracert命令跟踪80端口的连通情况,具体操作请参见能Ping通但端口不通时的端口可用性探测说明。
- 查看云服务器带宽是否充足,具体操作请参见Windows实例带宽和CPU跑满或跑高排查。
排查Web服务不可用情况
- 登录Windows系统的ECS实例。
- 查看Web服务日志,如Windows Server 2008 IIS服务日志路径为“%SystemDrive%\inetpub\logs\LogFiles\W3SVC4”。
- 通过任务管理器查看实例运行状态,查看是否有异样进程。
- 在控制台查看实例监控信息,查看实例带宽是否充足,若不足,可尝试升级实例带宽。
- 查看实例的CPU、内存是否耗尽。请参见Windows实例带宽和CPU跑满或跑高排查。
- 参考以下步骤,查看实例80端口是否有过多的TCP连接。
- 依次执行以下命令,统计TCP连接数。
netstat -n |find /i "time_wait" /c
netstat -n |find /i "close_wait" /c
netstat -n |find /i "established" /c
- 统计TCP连接数过高时,参考以下操作步骤,调整TcpTimedWaitDelay为30s,其默认值是4分钟(240s)。
- 打开CMD,执行
regedit
命令。
- 选择HKEY_LOCAL_MACHINE>SYSTEM>CurrentControlSet>Services>TCPIP>Parameters,根据如下情况进行设置。
- 如果无TcpTimedWaitDelay项参数,则执行以下操作。
- 右键单击Parameters,然后依次选择新建>DWORD (32-位)值。
- 输入TcpTimedWaitDelay,按回车键确认。
- 如果存在TcpTimedWaitDelay项参数,右键单击TcpTimedWaitDelay,单击修改 ,勾选十进制,数值数据输入30,单击确定。
相关文档
引发网站访问异常的相关因素及症状很多,如果您需要了解更多ECS实例中网站无法访问的原因,请参见访问ECS实例异常时的因素。
适用于
FAQ
关于此文档暂时还没有FAQ