无法通过公共IP访问EC2实例上的站点

pri*_*mer 60 ruby-on-rails nginx amazon-ec2

我已经在EC2上试验了几天,并且甚至只能访问我托管的示例站点,一直在敲打我的脑袋.堆栈是Rails 3.1.3,带有Thin和Nginx.

我尝试了几种不同的配置,最后运行了Nginx自动安装脚本,当我做卷曲时它会返回一个网页http://ec2-107-20-143-179.compute-1.amazonaws.com/.但是,当我将浏览器指向那里时,它会在说无法找到页面之前永久挂起.

我已经分配了一个弹性IP地址,并且我已经通过端口80启用了HTTP访问.

我对系统管理员方面的经验不多,而且我现在基本上都难过了.任何建议将不胜感激.

Del*_*man 116

您是否为所有ips启用了http端口?这将通过以下方式完成:

EC2 - >安全组 - >默认(或您的客户) - >入站

然后为HTTP创建新规则并作为源,您应该分配:0.0.0.0/0

应该这样做.


Car*_*ton 38

认为AWS UI可能已经更新,但基于Deleteman的答案

  • 登录EC2仪表板
  • 实例>实例
  • 操作下拉菜单>网络>更改安全组
  • 您可能会看到只允许启动向导-1,这对我来说只允许在端口22上进行SSH访问

因此,正如Deleteman所提到的,您可能需要更改您的安全组......

  • 登录EC2仪表板
  • 网络和安全>安全组
  • 删除搜索框中可能显示所有组的所有过滤器
  • 我个人编辑了默认的VPC安全组,因为这是我的沙箱,我想你会想为你的项目创建一个安全组
  • 选择安全组复选框,选择操作下拉列表并单击"编辑入站规则",我使用以下入站规则只是为了确保它全部正常工作

规则

  • 当您再次访问实例>实例>描述时,您应该看到安全组和规则

在此输入图像描述

  • 一旦你开心它正在工作我可能用HTTP和HTTPS替换所有流量,如果这就是所需要的

  • 从"无处不在"打开所有端口是一个非常糟糕的主意. (9认同)

Oct*_*pus 25

我之前在这里寻找解决我遇到的类似问题的方法.在我的情况下,除了EC2安全组之外,EC2实例还运行了自己的防火墙.命令'system-config-firewall'让我进入打开端口.默认情况下,端口80(HTTP)和3306(MySQL)未打开.22(SSH)开放了.我还必须做'yum install system-config-firewall'.

总而言之,我的解决方案是:

> yum install system-config-firewall
> system-config-firewall
Run Code Online (Sandbox Code Playgroud)

  • 第一个给出`设置安装过程``没有包system-config-firewall可用.`什么都没做 (6认同)

小智 19

这个答案适用于那些不知道他们在使用ec2实例做什么的新手.

我遇到了同样的问题,并尝试了所有安全组修复无济于事.

事实证明,我需要从命令行打开我的服务器.

sudo service httpd start 
Run Code Online (Sandbox Code Playgroud)

有时它很暗,不是因为保险丝烧坏了,而是因为你没有轻弹开关.


小智 12

对我来说,这就像在浏览器上将网址https://my-site从更改为 一样简单。http://my-site(此解决方案仅适用于仍然能够通过 SSH 连接到 ec2 实例但无法通过浏览器连接的人)


jbm*_*yid 7

我也在努力解决同样的问题,也创建了安全组,但没有应用于实例.只需为http创建新规则.并从右键单击实例应用并选择安全组并进行分配.


aru*_*n a 5

我在 ubuntu EC2 实例中多次面临同样的问题,在这里我添加了所有帮助我在不同情况下解决问题的方法。

  1. 确保您正在从浏览器访问“公共 IPv4 DNS”或“公共 IPv4 地址”或“弹性 IP 地址”。

Step1 截图

  1. 检查80端口是否打开。 Step2 80端口没有打开 在这里您可以看到Inbound rules中的端口 80 没有打开。所以我们先打开80端口。为此,单击安全选项卡,您可以看到安全组打开此新选项卡 安全组 现在您必须编辑入站规则。 编辑入站规则 单击添加规则 然后选择类型HTTP和源AnyWhere并保存它。 在此处输入图片说明 同样,您也使用 HTTPS。

  2. 如果未启用 HTTPS,请检查浏览器 URL,如果我们尝试从浏览器默认访问,则可能是 HTTPS,如果是,请设为 HTTP 并重试。

  3. 编辑网络 ACL。选择网络选项卡并在新窗口中打开子网 ID网络选项卡和子网 ID

打开的子网 ID 从子实体 ID在新窗口中打开网络 ACL现在编辑入站规则。 编辑入站规则 100 规则 100 应如下所示,即 type=="HTTP"


小智 5

就我而言,这是因为我使用 HTTPS 访问公共 IP,因此请记住在浏览器中删除“s”。如此愚蠢!