NGINX 可以在调度之前调用其他服务吗

NGINX 可以在调度之前调用其他服务吗

我们使用 NGINX 作为反向代理,它将外部的调用调度到我们内部的 Java 微服务:

在此处输入图片描述

我们想添加一个特殊服务,充当“中间人”,但只用于请求部分。它的目的是修饰原始请求(身份验证、添加/修改 HTTP 标头、验证访问权限)。“修饰任务”涉及复杂的业务逻辑,无法在 NGINX 本身上配置。

我们希望首先调用该服务,然后将其响应(尤其是 HTTP 标头!)作为请求转发给其中一个微服务。也可以选择使用原始主体调用已调度的服务,但使用装饰器服务返回的 HTTP 标头。

当服务返回 HTTP 错误时,它应该直接返回给调用者,而无需调度。

该服务以 Java Spring Boot 应用程序的形式实现。它是一种常规 Web 服务。

是否可以在 NGINX 中进行配置?如何配置?

需要明确的是:我不是在问如何实现这个特定的服务。我需要的只是知道是否可以(以及如何)配置 NGINX,以便在分派调用之前调用另一个服务,并且 NGINX 将从该服务返回的标头(可能还有正文,但不一定)传递给调用。

在此处输入图片描述

答案1

对的,这是可能的。

看一眼例如。简而言之,您可以使用授权请求指令来获取所需的附加标头。使用proxy_set_header向主请求添加附加标头。

相关内容