如何在 AWS Global Accelerator 中保留用戶端 IP 位址 - AWS Global Accelerator

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

如何在 AWS Global Accelerator 中保留用戶端 IP 位址

對於 Amazon EC2 執行個體和應用程式負載平衡器,AWS Global Accelerator 會以不同方式保留用戶端的來源 IP 地址:

  • 對於 EC2 執行個體端點,會針對所有流量保留用戶端的 IP 位址。

  • 對於具有用戶端 IP 位址保留的 Application Load Balancer 端點,全域加速器會與 Application Load Balancer 搭配使用,以提供X-Forwarded標頭,X-Forwarded-For,其中包括原始用戶端的 IP 位址,以便您的 Web 層可以存取它。

HTTP 請求和 HTTP 回應使用標頭欄位來傳送有關 HTTP 訊息的資訊。標頭欄位是以冒號分隔的名稱值組,以歸位字元 (CR) 和換行 (LF) 分隔。一組以 RFC 2616 定義的標準 HTTP 標頭欄位,訊息標頭。也有應用程式廣泛採用的非標準 HTTP 標頭可用。有些非標準 HTTP 標頭具有X-Forwardedprefix.

由於 Application Load Balancer 會終止傳入的 TCP 連線,並建立到後端目標的新連線,因此不會將用戶端 IP 位址一直保留到目標程式碼 (例如執行個體、容器或 Lambda 程式碼)。您的目標在 TCP 封包中看到的來源 IP 位址是 Application Load Balancer 的 IP 位址。不過,Application Load Balancer 會保留原始用戶端 IP 位址,方法是將其從原始封包的回覆位址中移除,並將其插入 HTTP 標頭,然後再透過新的 TCP 連線將要求傳送到後端。

所以此X-Forwarded-For請求標頭的格式如下所示:

X-Forwarded-For: client-ip-address

以下範例顯示X-Forwarded-For要求標頭,具有 203.0.113.7 IP 地址的用戶端。

X-Forwarded-For: 203.0.113.7