Spring boot CloudFoundry中的Spring云网关

Spring boot CloudFoundry中的Spring云网关,spring-boot,spring-cloud,netflix-eureka,spring-cloud-gateway,Spring Boot,Spring Cloud,Netflix Eureka,Spring Cloud Gateway,在将我的应用程序开发到CloudFoundry实例后,我一直在尝试让它们运行。我正在使用的实例将不允许使用http执行请求(它们只是超时),因此我必须将所有请求路由到https 我使用的组件/版本有: 爪哇10 Spring Boot 2.0.4.RELEASE/Spring Cloud Finchley.SR1 春云之门 spring云配置服务器 春季云入门netflix eureka 失败的配置 EurekaClient配置(在网关和gw应路由到的后端中) 网关配置 spring:

在将我的应用程序开发到CloudFoundry实例后,我一直在尝试让它们运行。我正在使用的实例将不允许使用http执行请求(它们只是超时),因此我必须将所有请求路由到https

我使用的组件/版本有:

  • 爪哇10
  • Spring Boot 2.0.4.RELEASE/Spring Cloud Finchley.SR1
  • 春云之门
  • spring云配置服务器
  • 春季云入门netflix eureka
失败的配置

EurekaClient配置(在网关和gw应路由到的后端中)

网关配置

spring:
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true
      routes:
      - id: user-service
        uri: lb://user-service
        predicates:
        - Path=/user/**
        filters:
        - RewritePath=/user/(?<segment>.*), /$\{segment}
spring:
云:
网关:
发现:
定位器:
已启用:true
路线:
-id:用户服务
uri:lb://用户服务
谓词:
-路径=/user/**
过滤器:
-重写路径=/user/(?*),/$\{segment}
我已经尝试过的事情:

  • 使用
    lb:https://user-service
    如->中所述,在我看来没有任何效果
  • 使用应用程序的真实URL(
    uri:https://user-service.cf-instance.io
    )->布线工作正常
但我不想在我的配置中定义URL,它们应该由eureka返回,并由网关正确构建

提前谢谢

编辑:

以下是
/eureka/apps

我目前正在努力将当前代码导入GitHub,当我找到时间获得清晰状态时,我将编辑这篇文章

编辑2:

您可以在以下位置找到完整的示例(SpringCloudGateway、Eureka等) 这是一个正在运行的示例,应用的配置将不使用Eureka。要使用Eureka,必须采用配置服务中的
网关服务cloud.yml


-id:用户服务
uri:lb://用户服务


请忽略文档服务,这还不起作用,我首先需要重写路径。

好的,我在用我的
文档服务解决“路由”问题时找到了解决方案


我的问题是将属性
eureka.instance.securePort
设置为
${server.port}
。此属性必须设置为
443
(未设置任何内容时不应用默认的443)。将此项添加到我的配置中时,推送我的应用程序后,一切正常。

是否有在eureka安全端口注册的服务?是的,这些服务在eureka仪表板中正确注册。当我单击仪表板中的ID时,我被重定向到服务的健康端点。对网关的响应也包含正确的uri,但不包含模式本身。因此,我认为网关配置中缺少了一些内容,可以/将模式设置为https。您能否显示
/eureka/apps
的输出?我编辑了这篇文章,添加了您要求的信息。今天我做了另一个测试。我部署了两种不同配置的应用程序。第一个是修复https URL,另一个是lb配置。为
/eureka/apps
生成的xml完全相同(除了ip、时间戳和id)。Hi@Konrad,我面临同样的问题。您能告诉我您在哪个服务中将
eureka.instance.securePort
设置为
443
?网关服务还是其他微服务?嘿@jackfr0st。请查看我的提交历史记录。我已将所有的
安全端口设置为443。
spring:
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true
      routes:
      - id: user-service
        uri: lb://user-service
        predicates:
        - Path=/user/**
        filters:
        - RewritePath=/user/(?<segment>.*), /$\{segment}