如何将 aws-ec2 实例配置为 运行 playframework 1.2.7 应用程序

How configure aws-ec2 Instance to run playframework 1.2.7 application

我已经将 playframework 1.2.7 Web 应用程序部署到 aws-ec2 ubuntu 实例。由于 80 或 8080 抱怨无法绑定到这些端口,因此在端口 8081 上启动了应用程序。我如何通过 aws 安全组或 ubuntu 本身配置 ubuntu 实例,这样我就不必将端口 8081 添加到 public [=24] 的末尾=] 或者aws提供的public ip。 即我不想这样做:

example.com:8081 / ip4:8081

但我只想使用:

example.com / ip4

访问应用程序。 我需要这方面的帮助。

问题是 Ubuntu 端口 < 1024 是有特权的。这意味着普通用户无法对其进行任何操作。要开始在端口 80 上播放,您可以简单地以 root 用户身份启动它。 无论如何,由于可能存在的安全问题,以 root 身份启动网络服务器并不是最佳做法。

我建议以普通用户身份在您想要的任何非特权端口上启动它,并且利用弹性负载均衡器 (ELB) 将所有入站流量重定向到端口 80(或例如 443)到您的播放端口 。在创建 ELB

时,您可以简单地使用 AWS Web 界面完成此操作

因此用户将使用亚马逊自动分配的 dns 名称在端口 80 上调用 ELB 的游戏实例。

示例流程: 用户浏览器 --> http://your-elb-dns-name.com --> your_play_server_ip:8081

只需确保与您的播放服务器实例关联的安全组 将接受来自您的 ELB 的 8081 上的入站流量(您可以使用在其运行期间分配的亚马逊 ID 来识别您的 ELB创建)

使用此 ELB 方法的另一个巨大优势是您可以将其用作 反向代理以将您的 ec2-instance(s) ip(s) 隐藏到互联网。事实上,如果您使用 ELB,您还可以避免在创建期间将 public ip 分配给您的 ec2 实例。 ELB 不需要知道 public ip,因为它可以访问启动 ec2 实例的 Virtual Private Cloud (VPC)

如果您不想使用 ELB,另一种可能的方法是在您的 ec2 实例上安装 NGINx 或 Apache 作为反向代理,但我认为您应该使用 Amazon Web 服务来完成它。如果您需要向互联网隐藏播放服务器的特定资源,您可能需要使用内部 NGINX 或 Apache 反向代理。

https://aws.amazon.com/it/elasticloadbalancing/