我有一个在Amazon EC2上运行的Web应用程序。 它监听9898端口。
我可以通过inputIP地址和端口号来访问它。
例如1.2.3.4:9898
但是,我真正希望能够做的是不必input端口号。
研究这个问题,看起来像端口转发可能是解决scheme – 即将在默认端口(80)上收到的http请求转发到我的非标准端口(9898)。
这是正确的方法吗? 如果是这样,我如何在EC2上设置?
如果不是,那么我该如何实现我想要的?
在此先感谢您的帮助。
更新
我应该提到EC2实例是Windows Server 2012 AMI。
在没有自行安装的情况下,最简单的方法是在实例前放置一个Amazon Elastic Load Balancer。 这些允许您按照您的意愿转发端口。
你有两个select。
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表来转发报文 。
因为我看到了关于使用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之间,我的web应用程序不可见,直到我刷新和重新加载。 我知道这是一个可怕的形象来结束,抱歉。