【问题标题】:Front-Ending an app server on AWS EC2在 AWS EC2 上前端应用程序服务器
【发布时间】:2013-04-16 22:53:00
【问题描述】:

我在 EC2 中设置了 2 个实例。一个是运行 nginx,并且与弹性 IP 地址有关联,因此可以公开访问。

另一个没有 Web 服务器,但在端口 8080 上运行 RESTful 服务器。

两者都属于具有以下规则的安全组:

Ports   Protocol    Source  MongoDB-2-2-2-AutogenByAWSMP-
22  tcp 0.0.0.0/0   
80  tcp 0.0.0.0/0   
8080    tcp 0.0.0.0/0

如果我理解正确,那么端口 8080 应该是开放的。

如果我通过 ssh 连接到我的网络盒(运行 nginx)我正在尝试在另一个实例上测试对我的 RESTful 服务器的访问:8080,所以我尝试了:

curl http://10.151.87.76:8080/1/tlc/ping
curl http://ip-10-151-87-76:8080/1/tlc/ping
curl http://ip-10-151-87-76.ec2.internal:8080/1/tlc/ping

所有这些都给了我“无法连接到主机”的错误。

如果我直接登录 RESTful 框并执行以下操作,它就可以工作。

curl localhost:8080/1/tlc/ping

所以我知道我的服务是正常的。

感谢任何我无法从其他实例看到端口 8080 的想法。

【问题讨论】:

    标签: amazon-web-services amazon-ec2


    【解决方案1】:

    确保实例位于同一可用区。如果没有,您可能需要通过公共 DNS 名称(例如 ec2-XXX-XX-XXX-XXX.YYY.amazonaws.com)访问实例。

    确保 10.151.87.76 是正确的 IP。请注意,这可能会在实例停止并重新启动后发生变化。

    确保您的无头服务是公开可用的——它可能只在 localhost:8080 上侦听,但应该在 0.0.0.0:8080 上侦听。从其他实例尝试nmap 10.151.87.76 -p 8080,它应该将8080列为开放端口。

    【讨论】:

    • 相同的可用区:是 IP 检查:这些都是正确的 nmap 说:Nmap scan report for ip-10-151-87-76.ec2.internal (10.151.87.76) Host is up (0.00053 s 延迟)。 PORT STATE SERVICE 8080/tcp closed http-proxy 所以它在 web box 上被关闭了,即使安全策略说它应该是打开的。我该如何克服这个问题?
    • > 确保您的无头服务是公开可用的 Listen 8080,而不是 Listen 1.2.3.4:8080。如果是独立应用,请确保它可以监听所有接口——一些客户端默认会监听 localhost。
    • nmap state=closed 表示端口在防火墙中打开但没有服务在运行。如果它在防火墙中关闭,结果将是state=filtered
    • 我实际上不是指“一些客户端”,而是“一些服务器”(:
    【解决方案2】:

    确保你的无头服务是公开的

    这个!在我的代码中深埋(深)是连接到“本地主机”的服务器的一部分。将其更改为关闭主机名,一切都很好!快乐。

    【讨论】:

      猜你喜欢
      • 2017-04-04
      • 2020-06-20
      • 2017-09-03
      • 2019-11-02
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      • 2019-05-28
      • 2017-12-23
      相关资源
      最近更新 更多