今天,在64位centos7系统上装了nginx服务,碰到如下问题
-
检查80端口是否开启
firewall-cmd --query-port=80/tcp
显示‘no’ -
开启80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
显示‘success’ -
开启nginx服务
systemctl restart nginx
验证步骤如下:
- 用电脑谷歌浏览器访问ip地址,打不开
- 用电脑谷歌浏览器访问域名,同样打不开
- 换成手机浏览ip和域名都能看到nginx的欢迎页面
- 清除电脑谷歌浏览器缓存,更改dns,打不开
- 换成电脑搜狐和ie浏览器,打不开
- 用电脑连接手机的热点,访问打不开
- 把电脑调成disable path mtu discovery,打不开
- 用电脑ping 域名能返回正确的ip地址
- telnet 域名 80 连接失败
- telnet ip 80 连接失败
- 登录centos7,执行
firewall-cmd --query-port=80/tcp显示‘no’
???????????嘛情况?
- 重新执行
firewall-cmd --zone=public --add-port=80/tcp --permanent显示‘success’ - 再次执行
firewall-cmd --query-port=80/tcp显示‘no’ - 执行
firewall-cmd --reload# 重新载入防火墙配置,显示‘success’ - 执行
firewall-cmd --query-port=80/tcp显示‘yes’ - 用电脑访问域名和ip都能打开了
虽然现在把问题解决了,但是出现的两个问题倒是有点奇怪:
- 我之前执行
firewall-cmd --zone=public --add-port=80/tcp --permanent没有执行reload就可以直接把80端口打开,为什么这次失败了? - 既然80端口没打开,电脑不能访问网站,但是手机为什么却可以?(手机浏览器缓存清除,更换手机浏览器测试,都能正常访问)
第1个问题不好排查,毕竟问题不太容易复现(懒的搞),为了找出第2个问题的原因所在,做了如下尝试:
- 登录centos7系统关闭80端口,执行reload确认80端口已关闭
- 电脑浏览器访问域名,失败
- 手机自带浏览器访问域名,成功
- 进入手机设置页面,清除自带浏览器数据(相当于给手机浏览器恢复出厂设置),访问域名,失败
- 用手机谷歌浏览器访问域名,失败
总结:
问题已经得到处理,但是出现的原因未能十分确定
打开80端口必须要reload才能生效吗?
在设置里彻底清除手机浏览器数据才能更好的做测试?
本文记录了一次在64位CentOS7系统中安装Nginx并配置防火墙允许80端口访问的详细过程。在遇到电脑无法访问网站而手机可以访问的奇怪现象后,通过深入排查发现重启防火墙配置为解决问题关键,并对可能原因进行了探讨。
3万+

被折叠的 条评论
为什么被折叠?



