[英]Can't access site on EC2 instance via public ip
我已经尝试使用 EC2 几天了,并且一直在努力反对甚至能够访问我托管的示例站点。 堆栈是带有 Thin 和 Nginx 的 Rails 3.1.3。
我尝试了几种不同的配置,最后运行了 Nginx 自动安装脚本,当我执行 curl http://ec2-107-20-143-179.compute-1.amazonaws.com/时它确实返回了一个网页. 但是,当我将浏览器指向那里时,它会永远挂起,然后说找不到该页面。
我已经分配了一个 Elastic IP 地址,并且我已经通过端口 80 启用了 HTTP 访问。
我在系统管理员方面没有太多经验,此时我基本上被难住了。 任何建议将不胜感激。
您是否为所有 ip 启用了 http 端口? 这将通过以下方式完成:
EC2 -> 安全组 -> 默认(或您的客户) -> 入站
然后为 HTTP 创建一个新规则,作为源,您应该分配:0.0.0.0/0
那应该这样做。
认为 AWS UI 可能已经更新,但基于 Deleteman 的回答
因此,正如 Deleteman 所提到的,您可能需要更改您的安全组......
我早些时候在这里寻找解决我遇到的类似问题的方法。 在我的案例中,除了 EC2 安全组之外,EC2 实例还运行了自己的防火墙。 命令'system-config-firewall'让我可以打开端口。 默认情况下未打开端口 80 (HTTP) 和 3306 (MySQL)。 22 (SSH) 已打开。 我还必须执行“yum install system-config-firewall”。
总而言之,我的解决方案是:
> yum install system-config-firewall
> system-config-firewall
这个答案适用于不知道他们在用 ec2 实例做什么的新手。
我遇到了同样的问题,并尝试了所有安全组修复无济于事。
事实证明,我需要从命令行打开我的服务器。
sudo service httpd start
有时它很黑,不是因为保险丝熔断,而是因为你没有轻按开关。
我在使用 ubuntu EC2 实例时多次遇到同样的问题,在这里我添加了所有帮助我在不同情况下解决问题的方法。
我也在努力解决同样的问题,也创建了安全组,但没有应用于实例。 只需为 http 创建新规则。 并从右键单击实例应用并选择安全组并分配它。
对我来说,这就像在我的浏览器上将 url 从https://my-site
更改为http://my-site
一样简单。 (此解决方案仅适用于仍然能够通过 SSH 连接到 ec2 实例但无法通过浏览器连接的人)
Octopus 的答案对我来说是正确的,但 Windows 机器除外。 我需要去 Windows 防火墙,如果它不匹配规则,它会阻止所有来自 VM 的流量。 规则中没有启用端口 80,所以我只需要添加一个。
我很愚蠢,因为我忘记安装Web 服务器(HTTP 服务器),因为我的 ec2 实例公共 IP 无法正常工作。 回答这个问题也可能是我不应该错过的原因之一。
你可以安装,
nginx:
sudo apt-get install nginx
阿帕奇2:
sudo apt-get install apache2
我有同样的问题,因为我没有使用 Ubuntu 或 linux 的经验,所以我的大脑很糟糕。 Parag 的回答修复了它。
我很愚蠢,因为我忘记安装 Web 服务器(HTTP 服务器),因为我的 ec2 实例公共 IP 无法正常工作。 回答这个问题也可能是我不应该错过的原因之一。
你可以安装,
nginx:
sudo apt-get install nginx
阿帕奇2:
sudo apt-get install apache2
我知道这是一个非常古老的线程,但最近在许多服务中都遇到了这个问题。 当您在端口示例 3000 上运行任何应用程序服务器(如 Puma 或 Unicorn)时,没有负载均衡器或像 Nginx 前端这样的代理。 您必须遵循两个步骤:
我的问题是浏览器。
铬作品; 火狐不工作。
当我尝试在 EC2 上运行我的 go 应用程序时,我遇到了非常相似的情况。 如果您在浏览器上看不到适当的消息或结果,即使您:
curl
很好地得到响应,npm app.js
、 go run .
等) 确保您在浏览器中输入了http://ec2-...
而不是https://ec2-...
即使您打开 443 端口,也无法使用https://
连接到服务器,除非您已经配置了 ssh 证书。 用http
协议输入完整地址,不要省略,可能会解决问题。
以下是您可以遵循的步骤,当您检查这两个步骤时,它们很可能肯定会起作用。
确保您在浏览器中使用 http:// 而不是在 IP 和亚马逊 IPV4 公共 DNS 上使用 https://(它以某种形式出现,例如http://ec2-some-ip-address-here.region.compute.amazonaws.com
)
单击instance id
并向下滚动,
go to the security tab
,
click on security group it will look like this [![enter image description here][1]][1]
Click on edit inbound rules
添加这个
For type- choose HTTP
Source - choose anywhere or anywhere ipv4
然后点击保存就完成了。
这两者的结合应该可以正常工作。
对我来说,我需要设置 ufw 并在我的 EC2 实例上允许它。 我这样做是用这个命令sudo ufw app info "WWW Full"
它可以通过在浏览器地址中输入 http 而不是 https 来解决
当我们打开入站规则 http 和 https 时,它会自动使用一个 http 或 https,因此请遵循以下说明:确保您在浏览器上输入http://ec2-...,而不是https://ec2-... .
就我而言,这是因为我使用 HTTPS 访问公共 IP,因此请记住在浏览器中删除“s”。 那么蠢!
当我尝试从浏览器访问公共 IP 时,无法访问我的 Windows Ec2 实例。 在检查完以上所有内容后,我不得不更新阻止传入流量的 Windows (Defender) 防火墙设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.