如何設定 NGINX Ingress Controller 以增加用户端要求主體,啟用 CORS 以允許額外的標頭,並將 WebSocket 與 Amazon EKS 搭配使用?

1 分的閱讀內容
0

我想要設定 NGINX Ingress Controller,以使用我的 Amazon Elastic Kubernetes Service (Amazon EKS) 叢集來增加用户端要求主體的大小。我還想啟用跨來源資源共享 (CORS) 以允許額外的標頭,並將 WebSocket 與 NGINX Ingress Controller 搭配使用。

簡短描述

選擇以下組態選項之一:

  • 若要增加用户端要求主體的大小,請完成設定主體大小上限部分中的步驟。
  • 若要啟用 CORS 以允許額外的標頭,請完成啟用 CORS部分中的步驟。
  • 若要將 WebSocket 與 NGINX Ingress Controller 搭配使用,請完成使用 WebSocket 部分中的步驟。

解決方案

設定主體大小上限

如果您的主體大小要求超過了用户端要求主體的允許大小上限,則 NGINX Ingress Controller 會傳回 HTTP 413 錯誤。使用 client_max_body_size 參數設定較大的尺寸:

nginx.ingress.kubernetes.io/proxy-body-size: 8m

**注意:**proxy-body-size 的預設值為 1 M。請確認將數字變更為您需要的大小。

**注意:**在某些情況下,您可能需要增加所有貼文主體資料和檔案上傳的大小上限。對於 PHP,您必須在 php.ini 組態中增加 post_max_sizeupload_max_file_size 的值。

啟用 CORS

若要在輸入規則中啟用 CORS,請加入以下註解:

nginx.ingress.kubernetes.io/enable-cors: "true"

下面的範例顯示接受 X-Forwarded-For 標頭:

nginx.ingress.kubernetes.io/cors-allow-headers: "X-Forwarded-For"

您可以在 NGINX Ingress Controller 文件的啟用 CORS (來自 GitHub 網站) 部分找到其他標頭。

使用 WebSocket

NGINX 支援 WebSocket (來自 NGINX 網站) 1.3 或更高版本,無需任何要求。若要避免閉合連線,必須增加 proxy-read-timeoutproxy-send-timeout 值。

在以下範例中,針對 proxy 讀取逾時proxy 傳送逾時設定 120 秒:

nginx.ingress.kubernetes.io/proxy-read-timeout: "120"
nginx.ingress.kubernetes.io/proxy-send-timeout: "120"

**注意:**前面兩個註解的預設值為 60 秒


AWS 官方
AWS 官方已更新 2 年前