这是史上最奇怪的事。我已经将AWS ElasticBean秸秆环境的代理服务器设置配置为none,而不是nginx或apache,以减少服务器开销,因为我不需要缓存。
然而,最奇怪的事情发生了。服务器能够接受端口80上的连接,并将它们转发到运行在8080上的我的Node.js应用程序,尽管显然没有任何服务在监听端口80!我使用以下命令进行了验证:
sudo lsof -i :80 -无输出sudo iptables -L -无前向规则sudo netstat -an | grep :80 | grep LISTEN -没有进程侦听端口80在实际服务器上运行curl http://localhost/是可行的,因此这不是复杂的弹性负载均衡器转发规则的情况。
AWS是怎么做到的?他们如何在没有进程监听:80或iptables转发规则的情况下转发通信量?
发布于 2016-07-24 13:40:30
这是NAT的规定。
iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
REDIRECT tcp -- anywhere anywhere tcp dpt:http redir ports 8080
REDIRECT tcp -- anywhere anywhere tcp dpt:http redir ports 8080
REDIRECT tcp -- anywhere anywhere tcp dpt:http redir ports 8080
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
REDIRECT tcp -- anywhere anywhere tcp dpt:http redir ports 8080
REDIRECT tcp -- anywhere anywhere tcp dpt:http redir ports 8080
REDIRECT tcp -- anywhere anywhere tcp dpt:http redir ports 8080
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination https://serverfault.com/questions/791108
复制相似问题