有一次线上的nginx突然故障,重启nginx之后可以访问很小一段时间,然后又不能访问,检查各种配置都没有问题,而且是负载均衡服务器两台竟然都不能访问,所以记录下此次调试过程,以供将来借鉴。
1. 检查nginx的状态
- sudo service nginx status
- 如果是压缩包安装的,确定nginx启动之后使用 whereis nginx 或者 ps -ef | grep nginx 或者 sudo find / -type f -name nginx.conf
2. 检查nginx错误日志,在配置文件中查看日志路径
- 根据错误日志提示的内容排查问题,如果日志没有问题
- 检查nginx配置文件, /usr/sbin/nginx -t
- 可以使用 ll /usr/sbin/nginx 查看用户权限
- 如果没有问题会出现两条提示
nginx -t- 如果配置也没问题
3. 检查SSL证书是否异常(如果有)
- 这个几率一般很小,操作起来比较简单,把SSL配置对应的代码注释掉然后reload试下
nginx.conf4. 检查端口是否释放和防火墙
- 在nginx部署服务器执行,查看是否可以访问
- curl localhost:80
- 如果可以,但是外网不能访问
- 查看80端口是否被开放
sudo netstat -ntlp | grep 80
如果也开放了,阿里云的话需要检查下安全组配置
如果阿里云配置也正确,检查防火墙
- service iptables status 查看防火墙状态
- service firewalld status 查看防火墙状态
调试阶段防火墙可以简单粗暴的关闭
生产环境可以使用
- sudo iptables -t filter -A INPUT -s 0.0.0.0 -d 你的ip -p tcp --dport 9200 -j ACCEPT
- sudo iptables -t filter -A INPUT -s 你的ip -d 0.0.0.0 -p tcp --dport 9200 -j ACCEPT
5. 如果都没有没问题,nginx还是访问不了,建议重启服务器
当时重启服务器之后nginx就恢复正常了
猜想应该和阿里云的配置有关系,两台服务器同时做了配置操作,否则不应该两台负载均衡服务器同时无法访问
接下里的是一些建议,如果重启之后还不行,可以考虑重装nginx,线上不建议
如果重装还不行,找个大佬来吧
原文连接:https://www.notion.so/6-BUG-234897a91f6049d88f634e13376a4f8b
网友评论