问题现象
部署完nginx+keepalived(一主一备模式)高可用架构之后,发现外部无法通过虚IP访问nginx代理的业务。
 
排查步骤
| 12
 3
 4
 5
 6
 7
 8
 
 | 1. 首先检查在主机是否能正常访问监听端口:结果是telnet主机自身IP+监听端口,能正常访问2. 在外部telnet虚IP的监听端口:结果是telnet不通,可能是网络环境问题
 3. 在备机telnet虚IP的监听端口:结果是telnet不通,排除网络环境因素,可能是虚IP绑定有问题
 4. 排除虚IP绑定失败的因素,在备机telnet主机IP的监听端口:结果是telnet不通,说明主机和备机之间的网络存在问题
 5. 在备机telnet主机IP的ssh端口:结果是telnet通了,怀疑是防火墙做了设置
 6. 检查主机的防火墙状态:发现防火墙处于开启状态
 7. 关闭主机防火墙,在备机telnet测试端口连通性:结果是监听端口均能正常访问,说明问题根源是防火墙阻断了网络导致无法从外部访问nginx监听端口
 8. 检查备机,发现备机的防火墙处于开启状态,同样,需要关闭备机的防火墙
 
 | 
总结
以后遇到网络上无法访问nginx监听端口的情况,在确认机器自身可以访问监听端口之后,首先要检查防火墙状态以及防火墙策略。