Ich möchte den NGINX Ingress Controller so konfigurieren, dass der Körper der Client-Anfrage mit meinem Amazon Elastic Kubernetes Service (Amazon EKS) -Cluster vergrößert wird. Ich möchte auch Cross-Origin Resource Sharing (CORS) aktivieren, um zusätzliche Header zuzulassen, und WebSocket mit dem NGINX Ingress Controller verwenden.
Kurzbeschreibung
Wählen Sie eine der folgenden Konfigurationsoptionen:
- Um den Hauptteil der Client-Anfrage zu vergrößern, führen Sie die Schritte im Abschnitt Maximale Körpergröße konfigurieren aus.
- Um CORS so zu aktivieren, dass zusätzliche Header zugelassen werden, führen Sie die Schritte im Abschnitt CORS aktivieren aus.
- Um WebSocket mit NGINX Ingress Controller zu verwenden, führen Sie die Schritte im Abschnitt WebSocket verwenden aus.
Lösung
Konfigurieren der maximalen Körpergröße
Wenn Ihre Körpergrößenanforderung die maximal zulässige Größe des Körpers der Client-Anfrage überschreitet, gibt der NGINX Ingress Controller einen HTTP 413-Fehler zurück. Verwenden Sie den Parameter client_max_body_size, um eine größere Größe zu konfigurieren:
nginx.ingress.kubernetes.io/proxy-body-size: 8m
Hinweis: Der Standardwert für die proxy-body-size ist 1 M. Stellen Sie sicher, dass Sie die Zahl auf die Größe ändern, die Sie benötigen.
In einigen Fällen müssen Sie möglicherweise die maximale Größe für alle Beitragsdaten und Datei-Uploads erhöhen. Für PHP müssen Sie die Werte post_max_size und upload_max_file_size in der Konfiguration php.ini erhöhen.
CORS aktivieren
Um CORS in einer Ingress-Regel zu aktivieren, fügen Sie die folgende Anmerkung hinzu:
nginx.ingress.kubernetes.io/enable-cors: "true"
Das folgende Beispiel zeigt, dass der X-Forwarded-For-Header akzeptiert wird:
nginx.ingress.kubernetes.io/cors-allow-headers: "X-Forwarded-For"
Weitere Informationen finden Sie unter CORS aktivieren auf der Kubernetes-Website.
Verwendung von WebSocket
NGINX unterstützt WebSocket ohne zusätzliche Konfiguration. Um eine geschlossene Verbindung zu vermeiden, erhöhen Sie die Werte proxy-read-timeout und proxy-send-timeout.
Im folgenden Beispiel werden 120 Sekunden für das Proxy-Lese-Timeout und das Proxy-Sende-Timeout festgelegt:
nginx.ingress.kubernetes.io/proxy-read-timeout: "120"nginx.ingress.kubernetes.io/proxy-send-timeout: "120"
Hinweis: Der Standardwert der beiden vorangegangenen Anmerkungen ist 60 Sekunden.
Ähnliche Informationen
Anmerkungen auf der Kubernetes-Website