如何在 Amazon EC2 上设置端口转发

如何在 Amazon EC2 上设置端口转发

我有一个在 Amazon EC2 上运行的 Web 应用程序。它监听端口 9898。

我可以通过输入IP地址和端口号来访问它。

例如 1.2.3.4:9898

然而,我真正希望的是不必输入端口号。

研究这个问题后,看起来端口转发可能是解决方案 - 即将默认端口(80)上收到的 http 请求转发到我的非标准端口(9898)。

这是正确的做法吗?如果是这样,我该如何在 EC2 上进行设置?

如果没有,那么我该如何实现我的目标?

在此先感谢您的帮助。

更新

我应该提到 EC2 实例是 Windows Server 2012 AMI。

答案1

最简单的方法就是在实例前面放置一个 Amazon Elastic Load Balancer,这样你就可以根据自己的需要转发端口。

答案2

您有两个选择。

1)设置反向代理以将 HTTP 请求(假设它是 HTTP)转发到不同的端口。

它应该很简单:安装 apache,启用 proxy_http 模块,输入类似以下内容的内容:

ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
    Order allow,deny
    Allow from all
</Proxy>
ProxyPass / http://localhost:9898/
ProxyPassReverse / http://localhost:9898/

2)设置用于转发数据包的 IP 表

答案3

因为我看到了关于使用 iptables 的评论,所以我将分享我在 ec2 linux 中的经验。我找到了一篇关于为 Node.js 转发端口的优秀文章。如果您跳到编辑 sysctl.conf 的说明,您会看到转发说明。我的 Linux 程序与 Ubuntu 略有不同。文章是: http://www.lauradhamilton.com/how-to-set-up-a-nodejs-web-server-on-amazon-ec2

工作是通过 ssh 完成的。我遇到的唯一问题是我进行了两次预路由,中间没有刷新 iptables,我的网络应用程序直到我刷新并重新加载后才可见。我知道这是一个糟糕的结局,抱歉。

相关内容