我有运行多个java服务器的EC2实例,每个服务器使用本地端口1234,并且每个java服务器都有弹性IP,并且我使用iptables将EIP:443上的流量重定向到EIP:1234,因此我需要为所有java服务器,我需要从外部打开防火墙上的端口1234,以使应用程序可访问
我正在寻找最佳解决方案,以减少保留 IP 的数量并将非标准端口(如 1234)关闭为 443
有什么建议吗
提前致谢
我目前每台服务器都使用EIP, 我希望得到一个解决方案来帮助我减少IP数量并通过关闭非标准potts来提高安全性
您不能在单个服务器上有多个进程监听同一端口。您必须在不同的端口上运行每个 Java 应用程序,并为每个弹性 IP 配置单独的 IP 表规则以转发到不同的内部端口。
我需要从外部打开防火墙上的端口 1234 以使应用程序可访问
不,你不知道。您需要在防火墙中打开的唯一端口是端口
443
。这是用于与服务器通信的端口。在内部,在实际服务器上,iptables
服务会将端口 442
上传入的流量转发到适当的 Java 服务端口。这就是使用 iptables
的全部目的。
我正在寻找最佳解决方案,以减少保留 IP 的数量并将非标准端口(如 1234)关闭为 443
如果每个 Java 应用程序在不同的路径上运行,例如
/app1
、/app2
等,那么您可以通过 Java 进程前面的 Nginx 代理等方式使用基于路径的路由。或者,如果它们各自映射到不同的域名,您可以使用基于域的路由执行相同的操作。如果这些都不适合您,那么您可能会陷入当前拥有的多 EIP 路由解决方案的困境。
至于“关闭像 1234 这样的非标准端口”,您一开始就不需要打开这些端口,因为您的流量已经进入端口
443
,并且 iptables
完全在内部处理该端口映射到服务器。