如何在同一台机器上的同一端口443上运行多个java服务器

问题描述 投票:0回答:1

我有运行多个java服务器的EC2实例,每个服务器使用本地端口1234,并且每个java服务器都有弹性IP,并且我使用iptables将EIP:443上的流量重定向到EIP:1234,因此我需要为所有java服务器,我需要从外部打开防火墙上的端口1234,以使应用程序可访问

我正在寻找最佳解决方案,以减少保留 IP 的数量并将非标准端口(如 1234)关闭为 443

有什么建议吗

提前致谢

我目前每台服务器都使用EIP, 我希望得到一个解决方案来帮助我减少IP数量并通过关闭非标准potts来提高安全性

java linux amazon-web-services nginx
1个回答
0
投票

您不能在单个服务器上有多个进程监听同一端口。您必须在不同的端口上运行每个 Java 应用程序,并为每个弹性 IP 配置单独的 IP 表规则以转发到不同的内部端口。


我需要从外部打开防火墙上的端口 1234 以使应用程序可访问

不,你不知道。您需要在防火墙中打开的唯一端口是端口

443
。这是用于与服务器通信的端口。在内部,在实际服务器上,
iptables
服务会将端口
442
上传入的流量转发到适当的 Java 服务端口。这就是使用
iptables
的全部目的。


我正在寻找最佳解决方案,以减少保留 IP 的数量并将非标准端口(如 1234)关闭为 443

如果每个 Java 应用程序在不同的路径上运行,例如

/app1
/app2
等,那么您可以通过 Java 进程前面的 Nginx 代理等方式使用基于路径的路由。或者,如果它们各自映射到不同的域名,您可以使用基于域的路由执行相同的操作。如果这些都不适合您,那么您可能会陷入当前拥有的多 EIP 路由解决方案的困境。

至于“关闭像 1234 这样的非标准端口”,您一开始就不需要打开这些端口,因为您的流量已经进入端口

443
,并且
iptables
完全在内部处理该端口映射到服务器。

© www.soinside.com 2019 - 2024. All rights reserved.