我有一个安全 (https) Node Express 应用程序,我在端口 3000 上监听 => https://mywebsite.net:3000 在hostmonster上运行。
我希望将端口 443(即 https://mywebsite.net / https://mywebsite.net:443 )的请求转发到在端口 3000 => https://mywebsite.net:3000 上监听的 Node Express 服务器应用程序
这是由于无法直接监听443端口造成的。
我以 root 身份登录到 hostmonster。
我在 iptable 中添加了以下规则:
iptables -t nat -A PREROUTING -s 123.123.123.123 -p tcp --dport 443 -j DNAT --to-destination
service iptables save
当我输入时,我看到以下内容: iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- server.mywebsite anywhere tcp dpt:https to: 123.123.123.123:3000
DNAT tcp -- server.mywebsite anywhere tcp dpt:https to: 123.123.123.123:3000
问题是如果我输入 https://mywebsite.net 或 https://mywebsite.net:443 (同样的事情)在浏览器中,它不会转到我在端口 3000 上监听的主 Node Express 应用程序页面。
我还使用Google的 postman 做了 https://mywebsite.net:443的请求 并且它不会从监听端口 3000 的主 Node Express 应用程序页面返回信息。
那么从端口 443 到端口 3000 的重定向似乎不起作用?
我错过了什么?
最佳答案
我不确定您添加的规则是否正确。
Jenkins example on forwarding with iptables建议您尝试以下操作:
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 3000
关于node.js - Node Express 应用程序将端口 443 请求重定向到 hostmonster 上的端口 3000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41227281/