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