访问站点时,报“无法访问此网站”的错误,没有错误状态码?
网站忽然无法访问,出现异常代码XX?
网站访问非常缓慢,猜测是数据库连接数问题?
网站无法访问的原因多种多样甚至花里胡哨,那如何排查到问题的原因并解决呢?我们一起来看看吧~
(PS:本文针对云服务器网络无法访问,云下思路也可以借鉴)
场景一:无错误状态码
排查思路:
无错误状态码,多数情况下是“ERR_CONNECTION_TIMED_OUT”问题。
出现ERR_CONNECTION_TIMED_OUT错误原因,可以总结为以下点:
服务器带宽跑满、存在攻击
若是云服务器可能存在账号处于欠费状态
服务没有启动
端口没有正常监听
防火墙或者防火墙策略限制
排查思路说明:
、使用命令telnet IP Port 进行测试
、如果端口是通的,则排查
查看服务器带宽是否跑满、是否有攻击
是否使用的账号处于欠费状态
、如果端口不通,则排查
web服务没有正常启动
端口没有正常监听
防火墙/安全组拦截
解决方案:
、若是web服务没有正常启动,需要启动服务
使用netstat -tpln命令查看web服务(apache、nginx、tomcat等)的端口是否正常监听。
、若是端口没有正常监听,需要修改配置文件
使用netstat -tpln命令查看web服务的端口是否正常监听。不是监听在...上。
、若是防火墙拦截,需要关闭防火墙进行测试,或者找到相关限制规则进行修改。
iptables -L查看防火墙规则
场景二:网站访问异常代码XX。
排查思路:
通过查看其配置文件,并检测其配置文件语法,发现语法正常;
通过命令行查看其web服务端口运行正常,没有进程僵尸状况;
具体读配置文件,然后再查找客户客户配置文件所指定的具体目录;例如:网站数据目录等(本案例是客户机器迁移之后,由于阿里磁盘的特性导致盘符改变,客户的数据盘挂载不上,etcfstab和盘符不匹配)
问题定位到之后,重新以正确的方式挂载客户网站数据;重启服务,问题得以圆满解决;
基于类似问题还可以关注下目录权限等问题。
经验汇总:
针对网站访问报错问题几点排查建议:
服务器配置文件权限,以及语法的正确性;
配置文件中指定的网站相关目录存在问题,及相关权限问题;
运行web服务的用户和相关权限问题;
防火墙的设置问题,导致服务不可达;
服务器服务进程僵死问题;
配置文件中的非法字符问题;(特别是从windows平台直接cp过来的配置文件容易报错)这样的问题较难排查,可以通过type 命令或者 file 命令查看文件类型;最好是二进制格式或者 ascii 码,linux平台可以安装 dosunix 解决;
服务器的错误日志亦是非常关键的问题突破口;
案例:报错“ Not Found”
问题原因:
报错的具体原因是访问的路径url目录在服务上没有找到,如果直接使用ip或者域名访问,那么实际访问的页面是站点根目录下的默认文件(配置文件中index后指定的文件),如果服务器上站点根目录上没有这个文件,则会出现错误。
排查步骤:
测试环境:Nginx环境
如下图所示,站点跟目录/www/下没有默认index.html文件,访问http://IP/index.html时,会报 Not Found错误。
备注:Apache环境下,错误也是同样的原理进行排查。
场景三:网站访问非常缓慢
排查思路:
内容不全,后续会持续补充,欢迎大家关注~