

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

# HTTP 標頭和 Classic Load Balancer
<a name="x-forwarded-headers"></a>

HTTP 請求和 HTTP 回應使用標頭欄位來傳送有關 HTTP 訊息的資訊。標頭欄位是以冒號分隔的名稱值組，以歸位字元 (CR) 和換行 (LF) 分隔。一組以 RFC 2616 定義的標準 HTTP 標頭欄位，[訊息標頭](https://datatracker.ietf.org/doc/html/rfc2616#section-4.2)。也有應用程式廣泛採用的非標準 HTTP 標頭可用 (而且會自動新增)。有些非標準 HTTP 標頭擁有 `X-Forwarded` 字首。Classic Load Balancer 支援以下 `X-Forwarded` 標頭。

如需 HTTP 連線的詳細資訊，請參閱 *Elastic Load Balancing 使用者指南*中的[請求路由](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html#request-routing)。

**先決條件**
+ 確認您的接聽程式設定支援 X-Forwarded 標頭。如需詳細資訊，請參閱[Classic Load Balancer 的接聽程式組態](using-elb-listenerconfig-quickref.md)。
+ 設定您的 Web 伺服器至日誌用戶端 IP 地址。

**Topics**
+ [X-Forwarded-For](#x-forwarded-for)
+ [X-Forwarded-Proto](#x-forwarded-proto)
+ [X-Forwarded-Port](#x-forwarded-port)

## X-Forwarded-For
<a name="x-forwarded-for"></a>

當您使用 HTTP 或 HTTPS 負載平衡器時，`X-Forwarded-For` 請求標頭會自動新增並協助您識別用戶端的 IP 地址。由於負載平衡器攔截用戶端和伺服器之間的流量，您的伺服器存取日誌僅包含負載平衡器的 IP 地址。若要查看用戶端的 IP 地址，請使用 `X-Forwarded-For` 請求標頭。Elastic Load Balancing 會將用戶端的 IP 位址儲存在 `X-Forwarded-For` 請求標頭，並將標頭傳遞給您的伺服器。如果 `X-Forwarded-For` 請求標頭未包含在請求中，負載平衡器會以用戶端 IP 地址做為請求值建立請求標頭。否則，負載平衡器會將用戶端 IP 地址附加至現有標頭，並將標頭傳遞給您的伺服器。`X-Forwarded-For` 請求標頭可能包含以逗號分隔的多個 IP 地址。最左邊的地址是首先提出請求的用戶端 IP。後面則以鏈顯示所有接續的代理標識符。

`X-Forwarded-For` 請求標頭採用以下格式：

```
X-Forwarded-For: {{client-ip-address}}
```

下列是具有 IP 地址 `203.0.113.7` 之用戶端的範例 `X-Forwarded-For` 請求標頭。

```
X-Forwarded-For: 203.0.113.7
```

下列是具有 IPv6 地址 `2001:DB8::21f:5bff:febf:ce22:8a2e` 之用戶端的範例 `X-Forwarded-For` 請求標頭。

```
X-Forwarded-For: 2001:DB8::21f:5bff:febf:ce22:8a2e
```

## X-Forwarded-Proto
<a name="x-forwarded-proto"></a>

`X-Forwarded-Proto` 請求標頭協助您識別用戶端用於連接到您的負載平衡器的通訊協定 (HTTP 或 HTTPS)。您的伺服器存取日誌僅包含在伺服器和負載平衡器之間使用的通訊協定，但不包含用戶端和負載平衡器之間使用的通訊協定相關資訊。若要判斷用戶端和負載平衡器之間使用的通訊協定，請使用 `X-Forwarded-Proto` 請求標頭。Elastic Load Balancing 會將用戶端和負載平衡器之間使用的通訊協定儲存在 `X-Forwarded-Proto` 請求標頭，並將標頭傳遞給您的伺服器。

您的應用程式或網站可以使用存放在 `X-Forwarded-Proto` 請求標頭中的通訊協定，藉以產生重新導向到適當的 URL 的回應。

`X-Forwarded-Proto` 請求標頭採用以下格式：

```
X-Forwarded-Proto: {{originatingProtocol}}
```

以下範例包含適用於從用戶端產生的 `X-Forwarded-Proto` 請求標頭，以做為 HTTPS 請求：

```
X-Forwarded-Proto: https
```

## X-Forwarded-Port
<a name="x-forwarded-port"></a>

`X-Forwarded-Port` 請求標頭協助您識別用戶端用於連接到負載平衡器的目的地連接埠。