到目前为止,我们一直在使用旧版 nginx,但最近我们将系统升级到了 1.6.2。
我们有 ssh 端口转发以及用于两个独立内部服务器的负载平衡 nginx 服务器。
提到的配置直到最近都还有效,但现在却不行了,http 工作正常,但 ssh 的端口转发不工作。
我们惊讶地看到端口转发与 nginx 有何关系。
Nginx 会议
upstream web_rack {
server 192.168.1.10:80;
server 192.168.1.11:80;
}
Iptables 转发
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -i eth0 -p tcp -m tcp --dport 2001 -j DNAT --to-destination 192.168.1.10:2001
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -i eth0 -p tcp -m tcp --dport 2002 -j DNAT --to-destination 192.168.1.11:2001
现在,通过上述配置,我们无法 ssh 到服务器,但如果我们注释掉其中一个上游服务器,我们就可以登录到它。
upstream web_rack {
# server 192.168.1.10:80;
server 192.168.1.11:80;
}
通过上述配置,重新启动 nginx 服务后,我们就可以通过 ssh 登录到192.168.1.10