## HTTP連接管理
- [filter.network.HttpConnectionManager](#filternetworkhttpconnectionmanager)
- [filter.network.HttpConnectionManager.Tracing](#filternetworkhttpconnectionmanagertracing)
- [filter.network.HttpConnectionManager.Tracing.OperationName (Enum)](#filternetworkhttpconnectionmanagertracingoperationname-enum)
- [filter.network.HttpConnectionManager.SetCurrentClientCertDetails](#filternetworkhttpconnectionmanagersetcurrentclientcertdetails)
- [filter.network.HttpConnectionManager.CodecType (Enum)](#filternetworkhttpconnectionmanagercodectype-enum)
- [filter.network.HttpConnectionManager.ForwardClientCertDetails (Enum)](#filternetworkhttpconnectionmanagerforwardclientcertdetails-enum)
- [filter.network.Rds](#filternetworkrds)
- [filter.network.HttpFilter](#filternetworkhttpfilter)
HTTP連接管理[配置概述](../../../Configurationreference/HTTPconnectionmanager.md)。
### filter.network.HttpConnectionManager
[filter.network.HttpConnectionManager proto](https://github.com/envoyproxy/data-plane-api/blob/master/api/filter/network/http_connection_manager.proto#L19)
```
{
"codec_type": "...",
"stat_prefix": "...",
"rds": "{...}",
"route_config": "{...}",
"http_filters": [],
"add_user_agent": "{...}",
"tracing": "{...}",
"http_protocol_options": "{...}",
"http2_protocol_options": "{...}",
"server_name": "...",
"idle_timeout": "{...}",
"drain_timeout": "{...}",
"access_log": [],
"use_remote_address": "{...}",
"generate_request_id": "{...}",
"forward_client_cert_details": "...",
"set_current_client_cert_details": "{...}"
}
```
- **codec_type**<br />
([filter.network.HttpConnectionManager.CodecType](#filternetworkhttpconnectionmanagercodectype)) 應用與連接管理器的編解碼器類型。
- **stat_prefix**<br />
([string](https://developers.google.com/protocol-buffers/docs/proto#scalar), REQUIRED) 連接管理器發布的統計信息所使用的前綴。有關更多信息,請參閱[統計文檔](../../../Configurationreference/HTTPconnectionmanager/Statistics.md)。
- **rds**<br />
([filter.network.Rds](#filternetworkrds)) 通過RDS API動態加載連接管理器的路由表。
必須正確設置`rds`,`route_config`其中一個。
- **route_config**<br />
([RouteConfiguration](../v2APIreference/HTTProutemanagementandRDS.md#routeconfiguration)) 在此屬性中指定靜態的連接管理器的路由表。
必須正確設置`rds`,`route_config`其中一個。
- **http_filters**<br />
([filter.network.HttpFilter](#filternetworkhttpfilter)) 構成連接管理器請求的過濾器鏈,包括各個HTTP過濾器的列表。當請求發生時,將按照順序處理過濾器。
- **add_user_agent**<br />
([BoolValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#boolvalue)) 連接管理器是否處理[user-agent](../../../Configurationreference/HTTPconnectionmanager/HTTPheadermanipulation.md#user-agent)和[x-envoy-downstream-service-cluster](../../../Configurationreference/HTTPconnectionmanager/HTTPheadermanipulation.md#x-envoy-downstream-service-cluster)頭。有關更多信息,請參閱相應的鏈接。默認為false。
- **tracing**<br />
([filter.network.HttpConnectionManager.Tracing](#filternetworkhttpconnectionmanagertracing)) 是否定義對象,決定連接管理器是否將跟蹤數據發送到已配置的跟蹤服務程序中。
- **http_protocol_options**<br />
([Http1ProtocolOptions](#http1protocoloptions)) 傳遞給HTTP/1編解碼器,額外的HTTP/1設置選項。
- **http2_protocol_options**<br />
([Http2ProtocolOptions](#http2protocoloptions)) 額外的HTTP/2設置選項,直接傳遞給HTTP/2編解碼器。
- **server_name**<br />
([string](https://developers.google.com/protocol-buffers/docs/proto#scalar)) 連接管理器將在響應頭中寫入響應的服務名。如果未設置,則默認為Enovy。
- **idle_timeout**<br />
([Duration](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration)) 由連接管理器管理的連接空閑超時時長。在沒有活動的請求時,持續的時間超過設定的閾值,則認為連接超時。如果沒有設置,則沒有空閑超時。當達到空閑超時后,連接將被關閉。如果連接是HTTP/2連接,則在關閉連接之前會發生順序排空。看[drain_timeout](#drain_timeout)。
- **drain_timeout**<br />
([Duration](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration)) Envoy將在發送HTTP/2“關閉通知”(GOAWAY幀與最大流ID)和最終GOAWAY幀之間等待的時間。這是為了讓Envoy支持與最后GOAWAY幀競爭的新的流處理,所提供的寬限期。在這個寬限期間,Envoy將繼續接受新的流。在寬限期之后,最終GOAWAY幀被發送,Envoy將開始拒絕新的流。在連接遇到空閑超時或通用服務器耗盡時都會發生排空。如果未指定此選項,則默認寬限期為5000毫秒(5秒)。
- **access_log**<br />
([filter.accesslog.AccessLog](#filteraccesslogaccesslog)) 從連接管理器發出的HTTP訪問日志的配置。
- **use_remote_address**<br />
([BoolValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#boolvalue)) 如果設置為true,連接管理器將在確定內部和外部源以及操作各種頭部時使用客戶端連接的真實遠程地址。如果設置為false或不存在,連接管理器將使用`x-forwarded-for`HTTP頭。有關更多信息,請參閱[x-forwarded-for](../../../Configurationreference/HTTPconnectionmanager/HTTPheadermanipulation.md#x-forwarded-for),[x-envoy-internal](../../../Configurationreference/HTTPconnectionmanager/HTTPheadermanipulation.md#x-envoy-internal)和[x-envoy-external-address](../../../Configurationreference/HTTPconnectionmanager/HTTPheadermanipulation.md#x-envoy-external-address)的文檔。
- **generate_request_id**<br />
([BoolValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#boolvalue)) 連接管理器是否會自動生成[x-request-id](../../../Configurationreference/HTTPconnectionmanager/HTTPheadermanipulation.md#x-request-id)頭,如果該頭不存在。默認為true。生成一個隨機的UUID4(性能代價比較大),所以在高吞吐量的情況下,這個功能是不需要的,它可以被禁用。
- **forward_client_cert_details**<br />
([filter.network.HttpConnectionManager.ForwardClientCertDetails](#filternetworkhttpconnectionmanagerforwardclientcertdetails)) 如何處理[x-forward-client-cert](../../../Configurationreference/HTTPconnectionmanager/HTTPheadermanipulation.md#x-forward-client-cert)(XFCC)HTTP頭。
- **set_current_client_cert_details**<br />
([filter.network.HttpConnectionManager.SetCurrentClientCertDetails](#filternetworkhttpconnectionmanagersetcurrentclientcertdetails)) 只有在[forward_client_cert_details](#forward_client_cert_details)為`APPEND_FORWARD`或`SANITIZE_SET`且客戶端連接為`mTLS`時,此字段才有效。它指定要轉發的客戶端證書中的字段。請注意,在[x-forwarded-client-cert](../../../Configurationreference/HTTPconnectionmanager/HTTPheadermanipulation.md#x-forward-client-cert)頭中,始終設置`Hash`,并在客戶端證書顯示SAN值時始終設置`By`。
### filter.network.HttpConnectionManager.Tracing
[filter.network.HttpConnectionManager.Tracing proto](https://github.com/envoyproxy/data-plane-api/blob/master/api/filter/network/http_connection_manager.proto#L65)
```
{
"operation_name": "...",
"request_headers_for_tags": []
}
```
- **operation_name**<br />
([filter.network.HttpConnectionManager.Tracing.OperationName](#filternetworkhttpconnectionmanagertracingoperationname-enum)) span名將由此字段生成。
- **request_headers_for_tags**<br />
([string](https://developers.google.com/protocol-buffers/docs/proto#scalar)) 用于為活動span創建標簽的標題名稱列表。該標題名用于填充span標記名,標題值用于填充span標記值。如果指定頭的名稱出現在請求頭中,則會創建該標簽。
### filter.network.HttpConnectionManager.Tracing.OperationName (Enum)
[filter.network.HttpConnectionManager.Tracing.OperationName proto](https://github.com/envoyproxy/data-plane-api/blob/master/api/filter/network/http_connection_manager.proto#L66)
- INGRESS
(DEFAULT) 標記HTTP監聽器用于入站/入口請求。
- EGRESS
標記HTTP監聽器用于出站/出口請求。
### filter.network.HttpConnectionManager.SetCurrentClientCertDetails (Enum)
[filter.network.HttpConnectionManager.SetCurrentClientCertDetails proto](https://github.com/envoyproxy/data-plane-api/blob/master/api/filter/network/http_connection_manager.proto#L164)
```
{
"subject": "{...}",
"san": "{...}"
}
```
- **subject**<br />
([BoolValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#boolvalue)) 是否轉發客戶端證書的標題。默認為false。
- **san**<br />
([BoolValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#boolvalue)) 是否轉發客戶端證書的SAN。默認為false。
### filter.network.HttpConnectionManager.CodecType (Enum)
[filter.network.HttpConnectionManager.CodecType proto](https://github.com/envoyproxy/data-plane-api/blob/master/api/filter/network/http_connection_manager.proto#L20)
- **AUTO**<br />
(DEFAULT) 對于每個新的連接,連接管理器將自行決定使用哪個編解碼器。此模式支持TLS監聽器的ALPN以及監聽器明文的協議。如果ALPN數據可用,則優選,否則使用協議解析。在幾乎所有情況下,這是優選的設置。
- **HTTP1**<br />
連接管理器將假定客戶端使用HTTP/1.1協議。
- **HTTP2**<br />
連接管理器將假定客戶端使用HTTP/2(Envoy不需要通過TLS發送HTTP/2或者使用ALPN,事先預知的)。
### filter.network.HttpConnectionManager.ForwardClientCertDetails (Enum)
[filter.network.HttpConnectionManager.ForwardClientCertDetails proto](https://github.com/envoyproxy/data-plane-api/blob/master/api/filter/network/http_connection_manager.proto#L138)
如何處理[x-forward-client-cert](#x-forward-client-cert)(XFCC)HTTP頭。
- **SANITIZE**<br />
(DEFAULT) 不要將XFCC頭部發送到下一跳。這是默認值。
- **FORWARD_ONLY**<br />
當客戶端連接是mTLS(Mutual TLS)時,轉發請求中的XFCC頭。
- **APPEND_FORWARD**<br />
當客戶端連接是mTLS時,將客戶端證書信息附加到請求的XFCC頭并轉發它。
- **SANITIZE_SET**<br />
當客戶端連接是mTLS時,使用客戶端證書信息重置XFCC頭,并將其發送到下一個躍點。
- **ALWAYS_FORWARD_ONLY**<br />
始終在請求中轉發XFCC頭,而不管客戶端連接是否為mTLS。
### filter.network.Rds
[filter.network.Rds proto](https://github.com/envoyproxy/data-plane-api/blob/master/api/filter/network/http_connection_manager.proto#L181)
```
{
"config_source": "{...}",
"route_config_name": "..."
}
```
- **config_source**<br />
([ConfigSource](#configsource), REQUIRED) RDS的配置源描述符。
- **route_config_name**<br />
([string](https://developers.google.com/protocol-buffers/docs/proto#scalar), REQUIRED) 配置的路由名稱。這個名字將被傳遞給`RDS API`。這允許配置多個HTTP監聽器(和關聯的HTTP連接管理器)使用不同的路由配置。
### filter.network.HttpFilter
[filter.network.HttpFilter proto](https://github.com/envoyproxy/data-plane-api/blob/master/api/filter/network/http_connection_manager.proto#L192)
```
{
"name": "...",
"config": "{...}"
}
```
- **name**<br />
([string](https://developers.google.com/protocol-buffers/docs/proto#scalar), REQUIRED) 要實例化的過濾器的名稱。該名稱必須與支持的過濾器匹配。內置的過濾器有:
- [envoy.buffer](../../../Configurationreference/HTTPfilters/Buffer.md)
- [envoy.cors](../../../Configurationreference/HTTPfilters/CORSfilter.md)
- [envoy.fault](../../../Configurationreference/HTTPfilters/FaultInjection.md)
- [envoy.http_dynamo_filter](../../../Configurationreference/HTTPfilters/DynamoDB.md)
- [envoy.grpc_http1_bridge](../../../Configurationreference/HTTPfilters/gRPCHTTP11bridge.md)
- [envoy.grpc_json_transcoder](../../../Configurationreference/HTTPfilters/gRPCJSONtranscoderfilter.md)
- [envoy.grpc_web](../../../Configurationreference/HTTPfilters/gRPCWebfilter.md)
- [envoy.health_check](../../../Configurationreference/HTTPfilters/Healthcheck.md)
- [envoy.lua](../../../Configurationreference/HTTPfilters/Lua.md)
- [envoy.rate_limit](../../../Configurationreference/HTTPfilters/Ratelimit.md)
- [envoy.router](../../../Configurationreference/HTTPfilters/Router.md)
- **config**<br />
([Struct](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct)) 指定的過濾器配置,這取決于被實例化的過濾器。有關更多文檔,請參閱支持的過濾器。
## 返回
- [上一級](../Networkfilters.md)
- [首頁目錄](../../../README.md)
- 首頁
- 簡介
- Envoy是什么
- 架構介紹
- 術語
- 線程模型
- 監聽器
- L3/L4網絡過濾器
- HTTP連接管理
- HTTP過濾器
- HTTP路由
- gRPC
- WebSocket支持
- 集群管理
- 服務發現
- 健康檢查
- 連接池
- 負載均衡
- 異常檢測
- 熔斷
- 全局限速
- TLS
- 統計
- 運行時配置
- 跟蹤
- TCP代理
- 訪問日志
- MongoDB
- DynamoDB
- Redis
- 熱重啟
- 動態配置
- 初始化
- 逐出
- 腳本
- 部署
- 業界對比
- 獲得幫助
- 歷史版本
- 編譯安裝
- 編譯
- 參考配置
- 演示沙箱
- 前端代理
- Zipkin跟蹤
- Jaeger跟蹤
- gRPC橋接
- 構建Envoy Docker鏡像
- 工具
- 配置參考
- V1 API 概述
- V2 API 概述
- 監聽器
- 網絡過濾器
- TLS客戶端身份認證
- Echo
- Mongo代理
- 速率限制
- Redis代理
- TCP代理
- HTTP連接管理器
- 路由匹配
- 流量轉移/分流
- HTTP頭部操作
- HTTP頭部清理
- 統計
- 運行時設置
- 路由發現服務
- HTTP過濾器
- 緩存
- CORS過濾器
- 故障注入
- DynamoDB
- gRPC HTTP/1.1 橋接
- gRPC-JSON 轉碼過濾器
- gRPC-Web 過濾器
- 健康檢查
- 速率限制
- 路由
- Lua
- 集群管理
- 統計
- 運行時設置
- 集群發現服務
- 健康檢查
- 熔斷
- 訪問日志
- 限速服務
- 運行時配置
- 路由表檢查工具
- 運維管理
- 命令行選項
- 熱重啟
- 管理接口
- 統計概述
- 運行時配置
- 文件系統
- 自定義擴展示例
- V1 API參考
- 監聽器
- 網絡過濾器
- TLS客戶端身份認證
- Echo
- HTTP連接管理
- Mongo代理
- 速率限制
- Redis代理
- TCP代理
- HTTP路由配置
- 虛擬主機
- 路由
- 虛擬集群
- 速率限制配置
- 路由發現服務
- HTTP過濾器
- 緩存
- CORS過濾器
- DynamoDB
- 故障注入
- gRPC HTTP/1.1 橋接
- gRPC-JSON 轉碼過濾器
- gRPC-Web 過濾器
- 健康檢查
- Lua
- 速率限制
- 路由
- 集群管理
- 集群
- 健康檢查
- 熔斷
- TLS上下文
- 異常值檢測
- HASH環負載均衡配置
- 異常檢測
- 集群發現服務
- 服務發現服務
- 訪問日志
- 管理接口
- 限速服務
- 運行時配置
- 跟蹤
- V2 API參考
- 啟動引導
- 監聽&監聽發現
- 集群&集群發現
- 服務發現
- 健康檢查
- HTTP路由管理&發現
- TLS配置
- 通用的類型
- 網絡地址
- 協議選項
- 發現API
- 限速組件
- 過濾器
- 網絡過濾器
- TLS客戶端身份認證
- HTTP連接管理
- Mongo代理
- 速率限制
- Redis代理
- TCP代理
- HTTP過濾器
- 緩存
- 故障注入
- 健康檢查
- Lua
- 速率限制
- 路由
- gRPC-JSON轉碼器
- 常見訪問日志類型
- 常見故障注入類型
- FAQ
- Envoy有多快?
- 我在哪里獲得二進制文件?
- 我如何設置SNI?
- 如何設置區域感知路由?
- 我如何設置Zipkin跟蹤?