

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

# 如何在 AWS Global Accelerator 中保留用戶端 IP 位址
<a name="preserve-client-ip-address.headers"></a>

對於 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 標頭欄位，[訊息標頭](https://tools.ietf.org/html/rfc2616#section-4.2)。也有應用程式廣泛採用的非標準 HTTP 標頭可用。有些非標準 HTTP 標頭具有`X-Forwarded`prefix.

由於 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
```