当前位置: 首页 > 知识库问答 >
问题:

在eureka中使用特定端口注册spring boot https应用程序

韩欣怿
2023-03-14

我正试图注册一个应用程序可用通过https只。我有问题与正确的配置和链接显示在尤里卡的仪表板是不正确的。我已经尝试了一些配置,但我不能得到正确的效果,即在尤里卡工作仪表板链接。

server:
  port: 9999
  context-path: /ctx
  ssl:
    key-store: classpath:keystore.jks
    key-store-password: 'kspass'
    key-password: 'kpass'
    keyAlias: ssl

spring:
  application:
    name: app-ctx
  cloud:
    loadbalancer:
      retry:
        enabled: true

eureka:
  client:
    serviceUrl:
      defaultZone: https://localhost:8761/eureka/
  instance:
    hostname: localhost
    secure-port-enabled: true
    non-secure-port-enabled: false
    secure-port: ${server.port}
    health-check-url: https://${eureka.hostname}:XYZ/ctx/health
    status-page-url: https://${eureka.hostname}:XYZ/ctx/info
    home-page-url: https://${eureka.hostname}:XYZ/ctx

示例:health-check-url:https://${eureka.hostname}/ctx/health

结果:https://localhost/ctx/info

使用${server.port}替换的绝对URL

结果:http://localhost:9999/ctx/info,没有https。

最后一个是相当接近我的期望,但没有HTTPS。

共有1个答案

贲永思
2023-03-14

我终于找到了解决问题的办法。我不确定这是最好的,因为就我所见,它不适用于随机端口,即server.port=0。在这种情况下,eureka用端口0注册应用程序,在仪表板上,端口的链接没有转发到正确的位置,这不是预期的行为。

我们必须使用Eureka的配置部分${eureka.instance.secure-port},而不是使用与当前应用程序相关的${server.port}占位符。

server:
  port: 9999
  context-path: /ctx
  ssl:
    key-store: classpath:keystore.jks
    key-store-password: 'kspass'
    key-password: 'kpass'
    keyAlias: ssl

spring:
  application:
    name: app-ctx
  cloud:
    loadbalancer:
      retry:
        enabled: true

eureka:
  client:
    serviceUrl:
      defaultZone: https://localhost:8761/eureka/
  instance:
    hostname: localhost
    secure-port-enabled: true
    non-secure-port-enabled: false
    secure-port: ${server.port}
    health-check-url: https://${eureka.instance.hostname}:${eureka.instance.secure-port}/ctx/health
    status-page-url: https://${eureka.instance.hostname}:${eureka.instance.secure-port}/ctx/info
    home-page-url: https://${eureka.instance.hostname}:${eureka.instance.secure-port}/ctx
 类似资料:
  • 该应用程序在Eureka注册后以“未知”的状态启动,并且从未更改为“启动”。如果这些标志中的任何一个被设置为false,那么应用程序启动时注册为“up”。 当两个标志都启用/true时,我看到了以下一系列日志记录: 我如何让应用程序注册为启用了这两个标志/真? bootstrap.yml

  • 我已经在Eureka发现服务器、Config服务器和其他Eureka客户机中启用了ssl。配置服务器能够安全地向Discovery Server注册,Eureka仪表板显示配置服务器的正确健康检查URL信息。配置服务器有一个硬编码端口,但是,其他Eureka客户端被配置为分配一个随机端口。这些客户端可以注册到Eureka服务器,但是,这些客户端的端口在Eureka仪表板上显示为0。我不知道我错过了

  • 我有一个python web应用程序,并在eureka使用restful api[https://github.com/Netflix/eureka/wiki/Eureka-REST-operations]注册,我在eureka网页上找到了它的状态UP,但我的网关服务器(也在eureka注册)找不到它,我调用url网关服务器-host/myapp-url",以下响应为: 通用域名格式。netfli

  • 我正在开发一个微服务,我正在尝试使用Zuul代理来路由这些服务。但由于某些原因,Zuul无法路由到在eureka注册的应用程序。我尝试过增加hystrix和Zuul超时,但没有效果 引发异常 通用域名格式。netflix。祖尔。例外ZuuleException:组织转发错误。springframework。云netflix。祖尔。过滤器。路线带状路由过滤器。handleException(Ribb

  • 问题内容: 我可以在Windows中转到regedit,然后转到edit-> find,然后键入要在计算机中找到的密钥(在我的情况下为Maxima),然后找到所需的密钥(为最大值)(在我的情况下为“ HKEY_LOCAL_MACHINE” \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Uninstall \ Ma

  • 我有两个Spring应用程序(“客户端应用程序”和“服务应用程序”),它们已经注册到Eureka(并通过外部客户端进行对话)。但是,我必须与Solr的一个实例交谈,我被迫在属性文件中硬编码IP地址。我宁愿不这样做,而是使用Eureka进行服务发现。 问:有没有一种方法/插件可以让solr向Eureka注册,这样客户端就可以发现它(即使它是通过启动侦听器或某种方式编程实现的)? 我看过SolrAPI