本文介紹Nginx的常用配置以及如何在ASM網關實現對應的功能。
|
Nginx配置 |
描述 |
ASM實現方案 |
|
allow-backend-server-header |
允許從後端返回標題 |
ASM網關預設為true。 |
|
allow-snippet-annotations |
允許在Ingress的Annotation中添加自訂指令碼修改Nginx配置。 |
不支援該參數,ASM網關需要通過編輯IstioGateway YAML來修改網關配置。 |
|
compute-full-forwarded-for |
將遠程地址附加到X-Forwarded-For標題而不是替換它。 |
取決於Envoy的use_remote_address配置,預設為true。Istio關於XFF頭的處理,請參見Configuring Gateway Network Topology。 |
|
enable-underscores-inheaders |
允許Header出現底線。 |
對應Envoy的headers_with_underscores_action,預設為允許。 |
|
forwarded-for-header |
設定用於標識用戶端的原始IP地址的標題欄位。 |
ASM網關不支援自訂forwarded-for Header,預設為X-Forwarded-For。 |
|
generate-request-id |
如果請求中不存在X-Request-ID,則隨機產生X-Request-ID。 |
對應Envoy的generate_request_id,可以通過ASM外掛程式進行修改,預設為true。 |
|
ignore-invalid-headers |
設定是否忽略帶有非法名稱的Header。合法的Header名稱應該是由英文字母、數字、短劃線(-),可能包含底線(_)。 說明
底線(_)由underscores_in_headers控制。 |
Envoy提供了一個Header Validator。若未配置Header Validator,會使用預設值。如果有非法Header,會提示
|
|
keep-alive-requests |
設定同一個keep-alive Connection最大可以處理多少個請求。達到最大請求數後,該串連將被關閉。 |
關於如何配置,請參見Destination Rule的 |
|
log-format-upstream |
自訂日誌格式。 |
ASM支援自訂日誌格式,您可以通過ASM控制台的可觀測配置頁面進行配置。具體操作,請參見可觀測配置。 |
|
max-worker-connections |
設定同一個Worker進程可以開啟的最大串連數。 |
ASM並未提供完全相同的配置,但是支援通過Destination Rule的 |
|
proxy-body-size |
設定用戶端請求的最大Body Size,若超過該值,就會報413錯誤 |
不支援直接配置。建議分塊傳輸,不要使用太大的Body。 |
|
proxy-connect-timeout |
定義與Proxy 伺服器建立串連的逾時時間,不能超過75秒。 |
關於如何配置,請參見Destination Rule的 |
|
reuse-port |
設定Nginx為每個背景工作處理序建立一個單獨的監聽Socket(使用SO_REUSEPORT參數),允許核心在背景工作處理序之間分配傳入的串連。預設為true。 |
ASM網關預設為true。 |
|
server-tokens |
在響應中發送Nginx伺服器標題,並在錯誤頁面中顯示Nginx的版本,預設為disabled。 |
ASM網關預設會將伺服器標題填寫為Envoy的標題,但是錯誤頁面不會顯示Envoy版本。 |
|
ssl-redirect |
如果伺服器由TLS認證,則將重新導向的全域值設定為HTTPS。 |
關於如何配置,請參見Gateway的 |
|
upstream-keepalive-connections |
設定保留在每個背景工作處理序的緩衝中與上遊伺服器的最大的空閑Keepalive Connection數目。 |
ASM並未提供完全相同的配置,但Destination Rule提供了 |
|
upstream-keepalive-timeout |
設定一個逾時,逾時之後將關閉與上遊伺服器之間的空閑串連。 |
關於如何配置,請參見Destination Rule的 |
|
use-forwarded-headers |
|
Istio關於XFF頭的處理,請參見Configuring Gateway Network Topology。 |
|
worker-cpu-affinity |
將Worker進程綁定到指定的CPU集合上。 |
容器環境中,通常不建議配置該選項。保持預設即可。 |
更多資訊,請參見Ingress Nginx。