You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Cloud Gateway结合Eureka负载均衡无法转发HTTPS请求的求助

解决Spring Cloud Gateway负载均衡转发HTTPS请求的问题

当微服务启用SSL后,lb://MICROSERVICE-NAME配置失效的核心原因是:Eureka默认注册微服务的HTTP端口,且负载均衡客户端默认用HTTP协议调用实例。通过以下配置可让网关基于负载均衡转发HTTPS请求:

1. 配置微服务向Eureka注册HTTPS元数据

在每个启用SSL的微服务配置文件中,添加Eureka注册的HTTPS相关配置,让Eureka记录实例的HTTPS端口与协议:

eureka:
  instance:
    non-secure-port-enabled: false
    secure-port-enabled: true
    secure-port: ${server.port} # 微服务的HTTPS端口
    status-page-url: https://${eureka.instance.hostname}:${server.port}/actuator/info
    health-check-url: https://${eureka.instance.hostname}:${server.port}/actuator/health
    home-page-url: https://${eureka.instance.hostname}:${server.port}/

2. 配置网关负载均衡客户端强制使用HTTPS

在网关配置文件中,指定对应微服务的调用协议为HTTPS:

spring:
  cloud:
    loadbalancer:
      clients:
        MICROSERVICE-NAME: # 替换为你的微服务名称
          scheme: https

配置完成后,网关通过lb://MICROSERVICE-NAME路由时,会自动用HTTPS协议调用负载均衡后的微服务实例。

3. 处理自签名SSL证书(测试/内部环境可选)

若微服务使用自签名证书,网关需信任该证书才能完成SSL握手,可选择以下方式:

  • 将微服务证书导入网关的JVM信任库;
  • 测试环境下临时禁用SSL证书验证:
spring:
  cloud:
    gateway:
      httpclient:
        ssl:
          use-insecure-trust-manager: true

注意事项

  • 不存在lbs://协议,Spring Cloud Gateway负载均衡仍使用lb://,只需配合上述配置即可实现HTTPS负载均衡;
  • 确保微服务SSL配置正确、端口开放,且网关能正常访问微服务的HTTPS端口。

内容的提问来源于stack exchange,提问作者iftekher2283

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 04:45:41