今天,在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才能生效吗?
在设置里彻底清除手机浏览器数据才能更好的做测试?