NGINX 可以在調度之前呼叫另一個服務嗎

NGINX 可以在調度之前呼叫另一個服務嗎

我們使用 NGINX 作為反向代理,它將外部的呼叫分派到我們內部的 Java 微服務:

在此輸入影像描述

我們想添加一項特殊服務,充當“中間人”,但僅限於請求部分。它的目的是修飾原始請求(身份驗證、新增/修改 HTTP 標頭、驗證存取權限)。 「裝飾任務」涉及複雜的業務邏輯,NGINX 本身無法設定。

我們希望先呼叫該服務,然後將其回應(尤其是 HTTP 標頭!)作為請求轉送到其中一個微服務。也許也可以選擇使用原始正文來呼叫分派的服務,但使用從裝飾器服務傳回的 HTTP 標頭。

當服務傳回 HTTP 錯誤時,它應該直接傳回給呼叫者而不進行調度。

該服務作為 Java Spring Boot 應用程式實作。這是一項常規網路服務。

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

需要明確的是:我並不是問如何實現這項特定服務。我需要的只是知道是否(以及如何)可以配置 NGINX,以便它在分派調用之前調用另一個服務,並且 NGINX 將從該服務返回的標頭(也可能還有正文,但不一定)傳遞給呼叫。

在此輸入影像描述

答案1

對的,這是可能的。

看一眼例子。簡而言之你可以使用授權請求指令來取得所需的附加標頭。使用代理設定頭向主請求新增附加標頭。

相關內容