Eureka 总是返回 8080 端口的 url

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

端口 8080 总是从 eureka 返回,不管客户端是什么配置。这是我在客户端的尤里卡配置示例:

这是application.yml

eureka:
  client:
    register-with-eureka: true
    fetch-registry: false
    serviceUrl:
      defaultZone: http://eurekaserver.com/eureka
  instance:
    nonSecurePort: 80
    nonSecurePortEnabled: true
    hostname: myhost

使用上述配置的应用会尝试向eureka注册。它可以成功注册,但尤里卡返回

http://myhost.com:8080
。预期的网址应该是
http://myhost.com
.

应用程序在端口 8080 上运行,但是

http://myhost.com
到达了 restendpoint。有什么办法可以解决这个问题吗?

--编辑--

这是我的 bootstrap.yml

spring:
  application:
    name: myappname
java spring spring-cloud netflix-eureka
5个回答
1
投票

你在哪个文件中添加了这个配置?

bootstrap.yml
application.yml
,还是特定个人资料?还要检查属性文件名中的拼写错误。

所以发生的事情是你的配置没有正确加载。 Eureka Client 的自动配置在当前上下文中找不到

EurekaInstanceConfigBean
,因此它正在为您创建一个。 默认情况下,它首先检查
server.port
,然后是
port
,如果之前的键没有设置,它最终将端口设置为8080。

我不知道你使用的是哪个版本,但这已经是很长一段时间的默认行为了。

希望对您有所帮助! :)


0
投票

我看到了完全相同的行为。在服务器上注册的所有客户端都返回了正确的 url 但错误的端口号 8080。我有 2 个客户端在同一个节点上运行,名称和端口不同,一个真正使用端口 8080 的客户端在 eureka 服务器上正确显示但是一个正在使用端口 9090 不知何故也在尤里卡服务器上显示端口 8080。我试图将 server.port 移动到这里和那里(bootstrap.yml 或 application.yml)但是没有运气。任何帮助将不胜感激!


0
投票

在这种情况下,请转到:

  1. 运行方式 -> 运行配置
  2. 环境
  3. 去掉其中的端口号8080并申请
  4. 尝试通过在
    application.properties
    中传递server.port=8081
  5. 来使用不同的端口运行您的应用程序

0
投票

我有同样的问题,我已经解决了在 application.properties 上设置这个参数:

server.port = 7011

这可能是多余的(在我的例子中,我从 Weblogic 获取端口)但在客户端配置上是强制性的,以避免使用默认端口 (8080) 注册服务


0
投票

就我而言,我在 pom.xml 中有一个 tomcat 依赖项。我删除了它并且它起作用了。尝试从 pom.xml 中删除

spring-boot-starter-tomcat
依赖项。

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