【问题标题】:What is the endpoint of the EC2 linux1 instance?EC2 linux1 实例的端点是什么?
【发布时间】:2020-10-07 02:14:45
【问题描述】:

我创建了一个 EC2 linux1 实例并通过 SSH 连接到它。我安装了 NodeJS 并将一个 git 存储库克隆到实例。该应用程序已成功运行并连接到我从 RDS 创建的 MySQL 数据库实例。假设应用名称为my-app。我想要的是能够访问服务器上的应用程序。

我试过了

- ec2-{Public DNS (IPv4)}.compute-1.amazonaws.com/my-app/{endpoint} (not working)

- {Public DNS (IPv4)}/my-app/{endpoint} (not working) (not working)

实例的安全组设置如下:

感谢任何帮助

【问题讨论】:

  • 可以使用curl在本地访问应用吗?它在哪个端口上运行?
  • @DanielScott 是的,我可以在本地访问它,当我设置这样的端点时它会返回数据'localhost:400/my-app/{end_point}。它是 APIs 的 NodeJS 后端
  • 那你要么在你的安全组上打开400端口,要么使用防火墙将80或443端口转发到400。
  • @DanielScott 谢谢它的工作,我添加了端口 4000 的自定义 TCP
  • 请注意,端口号 0 到 1023 通常保留给特权服务并指定为众所周知的端口。如果您使用的是 HTTP/HTTPS,那么您可以使用 80/443,否则您通常会使用 1023 以上的端口号。

标签: amazon-web-services amazon-ec2


【解决方案1】:

如果您的应用在端口 4000 上运行,您需要在安全组中打开该端口,或者添加防火墙/反向代理以从 80/443 转发到 4000。

可以使用iptables转发端口:

Forwarding traffic from 80 to 8080

或 apache 作为反向代理:

Apache redirect to another port

【讨论】:

  • 您能否解释一下如何添加防火墙/反向代理以从 80.443 转发到 4000?
  • 已编辑答案以包含链接。几乎有无限种方法可以做到这一点。
  • 当我尝试通过https 访问它时出现错误。但我相信我在安全组中定义了 HTTPS,就像问题中所附图片一样,你知道为什么会这样吗?
  • 你得到什么错误?如果应用程序正确设置了 https,那么您可以使用 https://example.com:4000/my-app/{end_point}。
  • 当我使用http://example.com:4000/my-app/{end_point} 时,它会在浏览器上打印数据,但是当我用https 替换http 时,我得到This site can’t provide a secure connection 并得到无效响应
猜你喜欢
  • 1970-01-01
  • 2016-07-07
  • 1970-01-01
  • 2016-05-25
  • 1970-01-01
  • 2011-09-13
  • 1970-01-01
  • 2018-11-11
  • 1970-01-01
相关资源
最近更新 更多