如何将 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 反向代理。
我已经将 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 反向代理。