解决微服务注册到Eureka Server后,服务IP为127.0.0.1

现象为:

微服务注册到Eureka Server后,服务IP为127.0.0.1

解决微服务注册到Eureka Server后,服务IP为127.0.0.1_第1张图片

查看服务环境

解决微服务注册到Eureka Server后,服务IP为127.0.0.1_第2张图片

因为我没有配置spring.cloud.client.hostname变量,所以默认取操作系统的主机名,查看验证:

[ddh_tyqx@localhost apiservice]$ hostname
localhost.localdomain


果然如此!而此主机名有配置对应IP,如下:

[ddh_tyqx@localhost apiservice]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
所以,服务注册上去后,IP为127.0.0.1


解决办法:

修改主机名,我们将主机名改成CentOS

[ddh_tyqx@localhost apiservice]#sudo hostnamectl --static set-hostname CentOS

若主机名没有配置对应的IP地址,由会依次(可用网络设备)选择一个IP作为注册服务IP(可外部访问的IP),如果服务器上有多个可以外部访问的IP,可以配置:以指定选择网段或忽略网络设备的方式进行配置,方法:

配置优先选择网段方法:

spring.cloud.inetutils.preferredNetworks[0]: 10.176
spring.cloud.inetutils.preferredNetworks[1]: 192.168.1
spring.cloud.inetutils.preferredNetworks[2]: 192.168

忽略网络设置的方法

spring.cloud.inetutils=ignored-interfaces[0]=VirtualBox Host-Only Ethernet Adapter
spring.cloud.inetutils=ignored-interfaces[1]=VMware Virtual Ethernet Adapter for VMnet1
spring.cloud.inetutils=ignored-interfaces[2]=VMware Virtual Ethernet Adapter for VMnet8
spring.cloud.inetutils=ignored-interfaces[3]=TAP-Windows Adapter V9
spring.cloud.inetutils=ignored-interfaces[4]=TAP-Windows Adapter V9 #2
spring.cloud.inetutils=ignored-interfaces[5]=TAP-Windows Adapter V9 #2 #2
spring.cloud.inetutils=ignored-interfaces[6]=TAP-Windows Adapter V9 #1
spring.cloud.inetutils=ignored-interfaces[7]=VirtualBox Host-Only Ethernet Adapter #2
spring.cloud.inetutils=ignored-interfaces[8]=Microsoft Hosted Network Virtual Adapter
spring.cloud.inetutils=ignored-interfaces[9]=WAN Miniport(IKEv2)

自动解析主机名为IP及ID格式配置方法

eureka.instance=instance-id=${spring.cloud.client.ipAddress}:${spring.application.name}:${spring.application.instance_id:${server.port}}
eureka.instance=preferIpAddress=true


重启应用服务(重新注册),即可!


你可能感兴趣的:(SpringCloud,Web,Java)