Linux:无法识别 Spring 云 Web 应用程序的主机名

Linux: Hostname to Spring Cloud Web Application not recognized

我在 windows 中有一个开发环境,我可以在其中访问 spring 构建的 IP 地址和主机名(PC 名称),用于我的 Eureka 配置服务器/客户端。当我将它移动到 RedHat 环境时,它无法识别 URL 如果它是主机名。

我的主要目标是更改 eureka 客户端状态页面以指向 eureka 客户端的 hysterix 流的 hysterix 监视器。 ${spring.cloud.client.hostname} 的值解析为主机名。请问有什么方法可以让它成为eureka客户端的当前IP?

确切地说,这是我想要尝试做的事情的示例。

eureka:
 instance:
  preferIPAddress: true
  statusPageUrlPath: http://${spring.cloud.client.hostname}:${eureka.cloud.config.port}/hystrix/monitor?stream=http%3A%2F%2F${spring.cloud.client.hostname}%3A${server.port}%2Factuator%2Fhystrix.stream

碰巧客户端和服务器都在同一台机器上,所以我对 Eureka Config Server 路径和 Eureka 客户端 hystrix 流

请注意,我已经将 preferIPAddress 设置为 true,但生成的主机名仍然是“/etc/hostname”的值。我看到一些在 Eureka 客户端实例中明确指定 IP 地址的解决方案。但我更喜欢让它动态化,这样相同的代码可以 运行 在开发和部署环境中顺利进行。

我该怎么做才能让主机名也被识别为与 ip 地址相同?

答案刚刚在我脑海中浮现。我只是将以下内容更改为此。

${spring.cloud.client.hostname}

    ↓↓↓↓↓↓↓↓↓↓↓↓

${spring.cloud.client.ip-address}

我得出了一个错误的结论,因为其他站点会告诉我使用此配置 ${spring.cloud.client.ipAddress},但这是行不通的。

可能 Finchley / Spring boot 2.0 版本发生了变化。如果有人可以给我 link 描述配置更改的文档或讨论,那将会很有帮助。