端口 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
你在哪个文件中添加了这个配置?
bootstrap.yml
、application.yml
,还是特定个人资料?还要检查属性文件名中的拼写错误。
所以发生的事情是你的配置没有正确加载。 Eureka Client 的自动配置在当前上下文中找不到
EurekaInstanceConfigBean
,因此它正在为您创建一个。
默认情况下,它首先检查server.port
,然后是port
,如果之前的键没有设置,它最终将端口设置为8080。
我不知道你使用的是哪个版本,但这已经是很长一段时间的默认行为了。
希望对您有所帮助! :)
我看到了完全相同的行为。在服务器上注册的所有客户端都返回了正确的 url 但错误的端口号 8080。我有 2 个客户端在同一个节点上运行,名称和端口不同,一个真正使用端口 8080 的客户端在 eureka 服务器上正确显示但是一个正在使用端口 9090 不知何故也在尤里卡服务器上显示端口 8080。我试图将 server.port 移动到这里和那里(bootstrap.yml 或 application.yml)但是没有运气。任何帮助将不胜感激!
在这种情况下,请转到:
application.properties中传递
server.port=8081
我有同样的问题,我已经解决了在 application.properties 上设置这个参数:
server.port = 7011
这可能是多余的(在我的例子中,我从 Weblogic 获取端口)但在客户端配置上是强制性的,以避免使用默认端口 (8080) 注册服务
就我而言,我在 pom.xml 中有一个 tomcat 依赖项。我删除了它并且它起作用了。尝试从 pom.xml 中删除
spring-boot-starter-tomcat
依赖项。