问题标签 [spring-cloud-gateway]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3401 浏览

netflix-ribbon - Spring Cloud Gateway Ribbon 负载均衡

试图让 spring 云网关在我们应用程序的几个实例之间进行负载平衡,但就是想不通。我们目前没有服务注册中心(没有 Eureka 等)。

我一直在尝试使用功能区并进行如下配置:

但是,当我尝试向网关发出请求时,我得到一个内容长度为 0 的 200 响应,并且我的存根没有被命中。

我有一个非常基本的设置,没有定义 bean。

我怎样才能让丝带玩得很好/或替代品?

0 投票
2 回答
8514 浏览

spring-webflux - 如何为 Spring WebFlux 配置 netty 连接超时

我在 AWS 负载均衡器后面运行 spring 云网关(我理解它是在 Spring Webflux 上构建的),我收到间歇性的 502 错误。经调查,问题似乎与负载均衡器和我的节点之间的连接超时有关。从一些调查看来,底层网络服务器的默认超时时间为 10 秒。我使用以下命令确定了这一点...

虽然我可以将负载均衡器上的 idleTimeout 设置为 10 秒以下,但感觉效率非常低。如果可能的话,我想保持在 30 秒以上。相反,我想增加 netty 服务器上的连接超时。我试图在我的 application.yml 中设置 server.connection-timeout 属性...

也通过指定秒...

但是,当我运行 time 命令以查看我的连接持续多长时间时,超时并没有改变,它仍然在 10 秒处结束......

我在这里想念什么?

0 投票
2 回答
4976 浏览

java - Spring Cloud Gateway - 如果存在则去除前缀

我需要 Spring Cloud Gateway 根据Host标头或路径前缀将请求路由到微服务。在任何情况下,路径前缀都必须从路径中删除,但前提是它已设置。

我想出了以下代码,我认为只有“sip”是前缀:

问题是 Spring 会删除路径的第一段,即使它不是前缀。

例如,带有路径的请求/sip/calls成功,但/calls设置了 Host 标头的请求不成功,因为 Spring 会考虑/calls前缀并将其删除,从而导致路径为空。/calls/calls带有Host标头的路径成功,因为 Spring 仅删除了第一个calls路径段。

如何将主机和路径一起使用,仅当前缀与定义的值匹配时才删除它?

ps我在考虑每个服务有两条路线,但看起来不太好,尽管它实现了目标:

0 投票
2 回答
2178 浏览

java - Spring Cloud Gateway 使连接过早关闭

我在我的微服务设置中使用 spring 云网关作为 API 网关,并使用 consul 作为服务发现。

在某些情况下,当某些微服务的 API 花费超过 2 分钟时,网关会抛出以下错误:

我多次尝试相同的 API,2 分钟后我得到了这个错误。

有没有属性设置。版本和依赖项详细信息:

功能区设置:

0 投票
0 回答
2779 浏览

spring-security - 将spring cloud gateway与oauth2集成

我正在尝试为我的数据服务实现网关。我所有的数据服务都受到 JWT 身份验证的保护(即每个请求都必须有“授权”标头,否则数据服务会以“未授权”响应)。我希望我的网关也验证对授权标头的所有请求。我如何实现这一目标?由于 Spring Cloud Gateway 基于响应式模型,我无法使用相同的配置。以下是其他数据服务的配置:

应用程序属性

安全配置.java

资源服务器配置.java

代币转换器

0 投票
1 回答
4077 浏览

spring - 在 Spring Cloud Gateway 中禁止未经身份验证的请求

我已经在 Spring Cloud Gateway 中实现了自定义预过滤器,它允许经过身份验证的请求通过下游流程。我想要的是,如果请求未经身份验证,则返回 401 UNAUTHORIZE 状态响应并停止下游处理。能不能实现这个spring cloud gateway。

请帮忙。

我的过滤器代码如下

和配置如下:

0 投票
1 回答
653 浏览

spring - 是否可以为spring cloud gateway中的所有请求配置全局超时

我正在尝试为我的 api 网关中的所有请求添加全局超时。下面是我的路由bean:

如何为所有路由配置全局超时?

0 投票
0 回答
943 浏览

spring-boot - 带有 Redis 会话管理的 Spring Cloud Gateway 的工作示例?

您能否指出spring-cloud-starter-gateway工作示例的任何书面或视频教程?使用spring-session-data-redisSpring Boot 2和可能相关的库,例如 spring security?

基本上,我想在微服务环境中使用 Spring Clouting Gateway 服务器。我还想使用 Spring Boot 2.X。整个系统基于反应原理。

我发现了很多如何使用 Redis 速率限制器设置spring-cloud-starter-gateway服务器的示例。我有一个工作版本的网关服务器,但它没有使用基于 Redis 的会话管理。当我将 Redis 用于会话时,我会遇到各种异常。因此,任何工作示例将不胜感激。

0 投票
1 回答
2695 浏览

java - 从zuul迁移到spring cloud gateway时如何“删除gobal前缀('/api')然后转到lb://”

我想从 zuul 迁移到 spring 云网关,我不想更改我以前的应用程序的配置。我想知道如何处理带有“/api/ + 'serviceId'”的 url,路由到 lb://serviceId

之前的zuul配置

eureka 有很多服务注册,我不想为每个服务注册。

例如。org.springframework.cloud.gateway.discovery.DiscoveryClientRouteDefinitionLocator 自动生成的路由

我想要的是

我如何配置我的路线以获得我想要的东西

而且我还找到了源代码

“'/'+serviceId+'/**'”没有前缀

[2019-01-10] 更新 我认为@spencergibb 的建议是一个很好的解决方案,但是我尝试了很多方法(SpEL)遇到了新问题:

启动失败

当我使用转义“\”时

它开始成功,但运行时出现异常



更新 2

我在 中发现org.springframework.cloud.gateway.filter.factory.RewritePathGatewayFilterFactory,有一个替换来处理“\”

说到SpelParseException没有

0 投票
3 回答
15894 浏览

spring - SpringCloudGateway - 记录传入的请求 url 和相应的路由 URI

我是 Spring Cloud Gateway 的新手,我想要的是将传入请求记录到相应的路由 url,例如,如果我有以下路由配置:

然后对于“ http://localhost:8080/foo/route1 ”的传入请求,应打印以下日志消息。

“传入的请求 url ' http://localhost:8080/foo/route1 ' 被路由到 ' http://localhost:8585/route1 '”

有什么简单的方法可以实现这一点,或者我可以通过设置日志级别来实现这一点。

你能帮忙吗