【问题标题】:Amazon EC2 Cannot access port 80 even though app is running即使应用程序正在运行,Amazon EC2 也无法访问端口 80
【发布时间】:2017-03-26 21:04:59
【问题描述】:

我的免费层 EC2 包含我的 Scala 应用程序。该应用程序在端口 8080 上运行,但我已声明从端口 80 重定向到端口 8080。EC2 的安全组包括端口 8080 和 80 到所有 IP 的入站规则。尽管如此,我还是无法使用浏览器访问该服务。

Outputs from netstat and iptables

Security group

浏览器返回 ec2-35-157-211-142.eu-central-1.compute.amazonaws.com 拒绝连接。

如果有人可以帮助我,我将不胜感激。

谢谢。

【问题讨论】:

  • 如果您尝试从实际的 EC2 实例访问 localhost 上的这些端口,它是否有效?这将有助于确定问题是服务器还是服务器之外。

标签: scala amazon-ec2


【解决方案1】:

如果您能够在本地连接但不能远程连接,则很可能您没有将服务器绑定到外部接口。要绑定到所有接口,只需使 host = "0.0.0.0" 类似于以下内容:

喷雾:

IO(Http) ! Http.Bind(service, "0.0.0.0", port = 8080)

对于 Akka HTTP:

Http().bindAndHandle(route, "0.0.0.0", 8080)

【讨论】:

  • 太棒了!我很幸运,我提到了 Scala 应用程序 :) 我之前绑定了“localhost”
【解决方案2】:

确保您的 EC2 实例位于公有子网中。如果没问题,请确保为它们分配了公共 IP,否则将无法从 Internet 访问它们。

如果他们有公共 IP,那么您应该检查安全组是否有出站规则,允许这些端口用于所有 IP(或至少是您希望允许连接的那些)。如果您有入站规则但没有出站规则,您的实例将无法提供流量,因此请以与入站规则相同的方式定义出站规则。

如果设置正确,请确保网络 ACL 允许相同端口的入站/出站规则(当然:它不会拒绝它们)。

我希望这会有所帮助:)。

【讨论】:

    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 2019-03-01
    • 2019-06-23
    • 2019-10-21
    • 1970-01-01
    • 2016-09-12
    • 2015-11-24
    相关资源
    最近更新 更多