AWS Apache 服务器拒绝连接

问题描述 投票:0回答:2

我在 EC2 上创建了一个新的 Ubuntu T2 Micro 实例。

创建新的弹性IP并选择“EIP用于:VPC”

将地址关联到我的新 EC2 Ubuntu 实例。

我现在拥有一个私有 IP 和一个公共/弹性 IP。没有公共 DNS。

我的安全组开放了 SSH 端口 22 和 HTTP 端口 80 以及 HTTPS 443。

我使用 Terraform 创建服务器 用户数据 = <<-EOF #!/bin/bash sudo apt update -y sudo apt install apache2 -y sudo systemctl start apache2 sudo bash -c "echo your very first web server > /var/www/html/index.html" EOF

我可以使用 AWS 控制台通过 SSH 很好地连接到实例,但是当我尝试通过浏览器浏览公共 IP 时,它显示连接被拒绝。我也ping不通。

我使用 systemctl status 来检查服务器,它说 ├─apache2.service │ ├─2108 /usr/sbin/apache2 -k 启动 │ ├─2111 /usr/sbin/apache2 -k 启动 │ └─2112 /usr/sbin/apache2 -k start

我可以从服务器 ping google.com。

我没主意了。

从公共IP获取连接的网站

amazon-web-services apache terraform-provider-aws
2个回答
0
投票

需要注意的一些事项:

  • 从 AWS 控制台 (EC2 Instance Connect) 使用 SSH 不是有效的测试,因为这不需要您的实例具有公共 IP。
  • 仅仅为您的实例分配公共 IP 并不会自动使其在 Internet 上可用。
  • 如果您的安全组仅允许 TCP 端口 22、80 和 443,那么您将无法 ping 通服务器。

一些值得尝试的事情:

  • 验证您是否拥有 Internet 网关,并且您的 EC2 实例所在子网的路由表是否具有到 Internet 的路由。
  • 检查您的 EC2 实例所在子网上的 NACL,并确保它不会阻塞流量。
  • 确保没有任何东西阻止您访问服务器,例如公司防火墙或代理。
  • 尝试从实例上的命令行连接到 Apache,以验证 Apache 是否确实正在提供页面:
    curl -v http://localhost
    甚至
    curl -v http://PUBLIC_IP_OF_INSTANCE

0
投票

当我第二天尝试通过公共 IP 上网时,此问题已自动修复。我不确定这个问题是否是由于AWS云基础设施需要时间来消耗新的公共IP?就像注意到路由表或转发表一样,但幸运的是它通过了。

我认为AWS支持者应该解决此类问题,我相信不仅仅是我遇到过。

© www.soinside.com 2019 - 2024. All rights reserved.