问题标签 [netflix-zuul]

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 回答
16242 浏览

netflix - Zuul 路由到 HTTPS url 时出错

我有一个在 Eureka 中注册并在 Eureka 仪表板中可见的 Spring Boot 应用程序(最近为 HTTPS + 自签名证书启用了它)。

我们有一个 Zuul Filter 层,它获取用户请求,然后将其传递给 Spring Boot 应用程序。在可以通过 HTTP 访问应用程序之前,这一切正常。但是,一旦我启用了 HTTPS,zuul 路由就会失败。

这是我的 yaml 文件中的 Zuul 路由配置。我的 Zuul Route 配置是否应该对启用 HTTPS 的 URL/App 进行任何特殊配置?

这是异常堆栈跟踪(显示 Zuul 正在尝试路由到 HTTP URL,而不是 HTTPS url)

更新:添加 isRibbon 安全属性后,此错误消失了,现在我有一个新错误

0 投票
2 回答
3654 浏览

spring-cloud - Spring Cloud Zuul Monitor/CircuitBreaker 所有路由通过 Hystrix

我正在使用 Spring Cloud 和 @EnableZuulProxy 是否可以通过 /hystrix.stream 使用 hystrix 监视 application.yml 中配置的所有路由?在下面的示例中,我希望有一种简单的方法来监控对下游产品服务的所有请求。我知道我可以在产品服务本身上执行此操作,但是否可以监控 Zuul 请求。这对于任何不属于(第三方)并且不能使用@HystrixCommand 注释的下游服务很有用。

zuul: routes: item: serviceId: product path: /product/**

0 投票
1 回答
2991 浏览

netflix - 我们可以在 Zuul 路由配置中使用 HTTPMethod 吗?

对 /app/login 的 POST 请求应该重定向到http://abc:100/app/login,对 /app/login 的 DELETE 请求应该重定向到http://xyz:200/app/login。这如何在 Netflix Zuul 路由配置中实现?是否有选项可以在路由配置中提及 http 方法?

这是解释我们的场景的条目。

0 投票
0 回答
1450 浏览

spring - spring-cloud 边车路线不起作用

我使用 @EnableSidecar 创建了一个 spring-boot 应用程序,我看到为已注册的 eureka 客户端“offers”和“customers”创建了一条路由(Mapped URL path [/customers/**] onto ...),并且路由显示在http://localhost:9000/routes端点上:

在浏览器中的 zuul-proxy 上访问http://localhost:9000/customers时,我得到一个 404 的想法。

我的应用程序.yml

ZuulProxyApplication.java:

日志输出:

我看到在 eureka 中注册的客户和优惠实例。我还可以通过 zuul-proxy 应用程序中的 RestTemplate 访问它们,例如:

当我调用http://localhost:9000/test时,这是有效的

注册路由http://localhost:9000/customershttp://localhost:9000/offers得到 404 可能是什么问题?

0 投票
1 回答
1231 浏览

spring-security - Zuul 重定向到在 Eureka 中注册的微服务后,经过身份验证的主体丢失

为了使用 Netflix 堆栈,我进行了此设置:

  • 尤里卡服务器
  • 一个模块,通过 Zuul 代理暴露给外界(注册到 Eureka)
  • 多个后端微服务(注册到Eureka)

我的问题是,当我第二次/第三次调用代理中的 URL(要重定向到微服务)时,经过身份验证的主体丢失了

这些是日志条目:

我已经实现了一个 Zuul 代理,我将主体传递给要重定向的请求标头,但是当第二次发送请求时,不会调用此过滤器(Spring Security 捕获请求,因为它是匿名请求)。

关于这里发生了什么的任何想法?

谢谢

编辑:使用 Fiddler 进行调查,我发现在两次成功请求后,被拒绝的请求会用 HTTP 302 代码回答:

Fiddler 请求日志

编辑#2:这是我的 Spring 启动安全配置

0 投票
2 回答
16566 浏览

spring - Zuul上的Spring Security预授权过滤器建立和共享会话

我在一个开发团队中从事一个使用基于 Spring 的微服务的大型项目。我们最近发现了 Spring Cloud 项目,并正在尝试实现 Netflix 服务、Zuul、Eureka、Ribbon 等。

在我们的环境中,在通过外部服务获得预授权之前,没有人可以访问我们的应用程序将在其上运行的域。一旦他们到达我们的应用程序,我们将能够通过授权服务提供的标头令牌获取用户的身份。

我希望 Zuul 使用预身份验证过滤器设置 Spring Security 以建立用户会话,并使用 Spring Session 使会话可用于所有后端微服务。

这是一种合法的方法吗?我能看到的关于 Zuul 安全性的唯一信息是将 OAuth2 令牌代理到后端服务的能力,但我们不需要 OAuth2。有没有更好的方法来建立用户会话并在我们的后端架构中的服务之间共享它?

0 投票
1 回答
1173 浏览

spring-cloud - 如何在使用 netflix 部署期间将所有请求转发到特定版本(相同服务)?

我有 4 个相同服务的实例在不同的主机上运行。我正在逐节点为该服务节点部署新版本。在部署时,传入的请求会根据负载均衡器转发到任何版本(主机)。netflix 中有什么方法可以将所有传入请求转发到特定版本吗?

是否有任何通用方式可以定义版本(对于相同的 serviceId)。如果传入的请求在标头中定义了版本,我们可以使用它将请求转发到特定版本。

可能是这样的:

在 Zuul 代理中,

在样品服务中,

或任何其他机制来实现相同服务的版本控制?

0 投票
2 回答
6556 浏览

spring-cloud - Zuul 连接池大小

我有一个关于在单独使用 Zuul 时配置连接池大小的问题,而不是使用 Ribbon 或其他 Netflix 组件。

我们有一个使用 Zuul 将请求代理到 Mule 服务器的系统。我们只使用 Zuul 而不是 Ribbon。我们定义了 4 条调用 Mule 服务的路由。其中一项服务运行时间很长,每次调用大约需要 3 秒。

当我们同时加载 40 个用户的系统时,我们会收到此错误

当我查看代码以弄清楚如何更改连接池的大小并找到此代码时

起初我以为我所要做的就是增加 zuul.max.host.connections 的值,这会增加每个路由最大值的大小,但后来我注意到相同的系统属性用于设置总的最大数量连接。

设置此系统参数的值是否是控制池大小的正确方法?还是我们应该使用其他组件(例如 Ribbon)来更好地管理这些连接?

0 投票
2 回答
1076 浏览

spring-boot - Hystrix/Turbine 仪表板上的多个服务?

我试图了解使用 Spring Boot 运行的 2 个不同服务。这两项服务都在 Eureka 中很好地注册了,现在我想在 Turbine Web 应用程序中绘制一些 Hystrix 数据。

使用 Turbine 测试单个服务时效果很好:

我试图在仪表板上查看绘制这两个服务的视图,但无论我尝试什么,都只绘制涡轮配置中的第一个服务。

在尝试将数据输入到两种服务的turtle.stream 时,我似乎碰壁了。

任何提示或提示?

0 投票
1 回答
2636 浏览

spring - Zuul 或 eureka 将主机头设置为服务实例主机

我们正在使用相同服务的三个实例,它们在 eureka 中注册。他们面前有zuul。

每当我们的服务尝试重定向到控制器之一(例如 /login)时,它会直接转到主机名:端口(在浏览器地址字段中可见),而不是再次通过 zuul 代理。这给了我们超时。我们正在跟踪进入服务的标头 -host标头设置为我们服务的主机名。

它不应该使用地址 fromx-forwarded-host吗?如何强制 zuul/eureka 这样做?或者我们应该调整一些 spring-boot 配置来使用它host