我在 2 台服务器上运行了 tomcat 服务。Centos 7 和 Centos 5。
两台服务器都有公共 IP 和私有 IP。
Tomcat server.xml 中有 addaddress="auto"。我可以设置 IP,但我试图弄清楚为什么它选择了不同的接口。
在 CentOS 5 上,当我启动 tomcat 时,它会绑定到私有 IP。但 CentOS 7 会绑定到公共 IP。我已验证网络配置,一切看起来都很相似。
公共接口是两个服务器的默认网关。
我没有办法解决这个问题。
公共接口有网关,私有接口没有网关。
Centos 5路由表:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
100.100.100.224 0.0.0.0 255.255.255.224 U 0 0 0 eth0
10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
0.0.0.0 100.100.100.225 0.0.0.0 UG 0 0 0 eth0
Centos7路由表
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 200.200.200.225 0.0.0.0 UG 0 0 0 ens192
20.20.20.0 0.0.0.0 255.255.255.0 U 0 0 0 ens224
200.200.200.224 0.0.0.0 255.255.255.224 U 0 0 0 ens192
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 ens192
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 ens224
答案1
该文件需要一个及其私有IP的/etc/hosts
条目。hostname
Tomcat 尝试获取返回的默认值java.net.InetAddress.getLocalHost().getHostAddress().
https://tomcat.apache.org/tomcat-6.0-doc/config/cluster-receiver.html