Nginx

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

  • November 26, 2021

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

在此處輸入圖像描述

我們想添加一項特殊服務,作為“中間人”,但僅限於請求部分。它的目的是裝飾原始請求(身份驗證、添加/修改 HTTP 標頭、驗證訪問權限)。“裝飾任務”涉及復雜的業務邏輯,無法在 NGINX 本身上進行配置。

我們希望首先呼叫該服務,然後將其響應(尤其是 HTTP 標頭!)作為請求轉發給其中一個微服務。也許還可以選擇使用原始主體呼叫分派的服務,但使用從裝飾器服務返回的 HTTP 標頭。

當服務返回一個 HTTP 錯誤時,它應該直接返回給呼叫者而不用分派。

該服務被實現為 Java Spring Boot 應用程序。這是一個正常的網路服務。

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

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

在此處輸入圖像描述

是的,有可能。

看看這個例子。簡而言之,您可以使用auth_request指令來獲取所需的附加標頭。使用proxy_set_header向主請求添加其他標頭。

引用自:https://serverfault.com/questions/1084645