node.js - Node Express 应用程序将端口 443 请求重定向到 hostmonster 上的端口 3000

标签 node.js express https iptables hostmonster

我有一个安全 (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/

相关文章:

node.js - w、wtimeout、j 和 fsync 的顶级使用已被弃用。改用 writeConcern

ios - 从 https 链接获取图像

.htaccess - https 和 http 组合 .htaccess

amazon-web-services - 表格不安全

node.js - Estimote 贴纸 + Node.js + Raspberry-Pi

node.js - 使用对象更新准备好的语句

node.js - 如何使用 Passport.js 在 Node.js 中重置/更改密码?

javascript - Angular 5 无法 PUT 并出现 401 错误

node.js - express.js 不会异步调用相同的路由器回调吗?

javascript - Express JS 通配符路由代理