我在使用EC2实例通过HTTP访问我的网站时遇到问题。我尝试通过在端口80上允许HTTP来更改安全设置,但它仍然无法正常工作。但是SSH工作正常。可能是什么问题?
答案 0 :(得分:1)
这很令人尴尬,但我无法连接到我的EC2实例的原因是因为我的节点js app从未实际启动过服务器让我在端口80上侦听。
添加这个简单的代码片段
var server = app.listen(8080, function () {
var host = server.address().address
var port = server.address().port
console.log('Example app listening, host, port)
})
这个用于重定向的shell命令修复了问题。
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080
答案 1 :(得分:0)
如果ip-tables阻塞80,可以检查ip-tables,如果PORT 80的TCP对你的IP地址开放,则检查安全组,或者(0.0.0.0/0)。
鉴于您能够SSH而不是http,请检查您是否可以在具有SSH 22配置的SG中复制相同的设置 - 同时请查看Web服务器(或进程)是否已启动并运行PORT 80。
答案 2 :(得分:0)
首先,登录该实例,然后运行命令确认http服务正在运行。
telnet INSTANCE_public_DNS_name 80
然后为远程计算机运行相同的命令以确认是否存在任何防火墙问题。
如果telnet出现问题,请点击实例名称,然后转到description
- >安全组 - >查看规则。
您应该看到端口已打开。如果没有,请创建新的安全组或编辑现有的安全组,并分配给该实例。