【发布时间】:2017-12-27 12:05:26
【问题描述】:
我在我的 AWS EC2 实例上部署了以下代码 -
const express = require('express')
const app = express()
app.get('/test',(req,res) => {res.send('Hi')})
app.listen(3001, () => console.log('Server running on port 80'))
当我尝试访问以下网址 - http://ec2-13-59-209-0.us-east-2.compute.amazonaws.com/test 时,我收到连接被拒绝的消息。 UI 上的消息是 ec2-13-59-209-0.us-east-2.compute.amazonaws.com 拒绝连接。
我确实浏览了文档并设置了安全组来监听端口 3001。但这也没有帮助。所以我启用了所有端口的流量。我仍然无法连接。请在下面找到安全组的快照。如果您能帮我解决这个问题,那就太好了。
【问题讨论】:
-
默认情况下它在端口 80 上运行,因此您必须使用反向代理或 ip 表作为 sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-端口 3001
-
我认为安全组可以帮助解决这种情况。此外,我试图在不同的端口上运行不同的 nodejs 文件,从而让它们表现为单独的微服务。如果我将端口 80 上的所有请求重定向到端口 3001,那并不能解决我的问题。
-
@rxysm 如果您查看代码,它显然在端口 3001 上运行,而不是端口 80。这里不需要 iptables 路由规则。
-
@user3276247 安全组无法帮助解决这种情况。安全组只是阻止/允许流量,它们不会转发到不同的端口。然而,这不是这里的问题。
标签: node.js amazon-web-services amazon-ec2