Heim >Betrieb und Instandhaltung >Nginx >Wie konfiguriere ich Nginx für WebSocket -Proxying?
Um NGINX für WebSocket -Proxying zu konfigurieren, müssen Sie sicherstellen, dass Nginx das WebSocket -Protokoll und seine Upgrade -Anforderungen ordnungsgemäß verarbeiten kann. Hier finden Sie eine Schritt-für-Schritt-Anleitung, wie Sie dies einrichten:
/etc/nginx/nginx.conf
oder innerhalb /etc/nginx/sites-available/
für ortsspezifische Konfigurationen). Fügen Sie WebSocket -Proxy -Einstellungen hinzu:
Fügen Sie innerhalb des http
oder server
-Blocks, in dem Sie WebSocket -Unterstützung aktivieren möchten, den folgenden Konfigurations -Snippet hinzu:
<code class="nginx">http { ... server { listen 80; server_name example.com; location / { proxy_pass http://your_backend_server; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } }</code>
proxy_http_version 1.1
stellt sicher, dass Nginx HTTP/1.1 verwendet, was für WebSocket -Verbindungen erforderlich ist.proxy_set_header Upgrade $http_upgrade
und proxy_set_header Connection "upgrade"
sind für die Behandlung der WebSocket -Upgrade -Anforderung von entscheidender Bedeutung.proxy_cache_bypass $http_upgrade
stellt sicher, dass WebSocket -Verbindungen das Caching umgehen, was im Allgemeinen angemessen ist.nginx -t
und laden Sie Nginx mit sudo systemctl reload nginx
oder sudo systemctl restart nginx
. Um sicherzustellen, dass Nginx die WebSocket -Verbindungen ordnungsgemäß übernimmt, sind die folgenden Einstellungen innerhalb des location
in Ihrer NGINX -Konfiguration erforderlich:
proxy_pass
: Gibt den Backend -Server an, für den WebSocket -Anforderungen proxiiert werden.proxy_http_version 1.1
: Legt die HTTP -Protokollversion auf 1.1 fest, die für WebSocket -Verbindungen erforderlich ist.proxy_set_header Upgrade $http_upgrade
: Übergibt den Wert des Upgrade
-Headers vom Client an den Backend -Server.proxy_set_header Connection "upgrade"
: Legt den Connection
auf "Upgrade" fest, wodurch die WebSocket -Upgrade -Anforderung signalisiert.proxy_set_header Host $host
: Übergibt den Host -Header vom Client an den Backend -Server.proxy_cache_bypass $http_upgrade
: stellt sicher, dass WebSocket -Verbindungen das Caching umgehen, da WebSocket -Verbindungen nicht zwischengespeichert werden sollten.Diese Einstellungen arbeiten zusammen, um sicherzustellen, dass WebSocket -Verbindungen korrekt behandelt und an Ihren Backend -Server weitergeleitet werden.
Um sicherzustellen, dass Nginx das WebSocket -Protokoll -Upgrades korrekt übernimmt, müssen Sie die erforderlichen Konfigurationen wie in den vorherigen Abschnitten beschrieben implementieren. Hier sind zusätzliche Tipps, um zu überprüfen, ob die Upgrades ordnungsgemäß behandelt werden:
proxy_set_header Upgrade $http_upgrade
und proxy_set_header Connection "upgrade"
./var/log/nginx/
gefunden werden. Ein erfolgreiches WebSocket -Upgrade protokolliert keinen Fehler.wscat
oder websocat
, um WebSocket-Verbindungen manuell zu initiieren, und überprüfen Sie, ob sie über NGINX erfolgreich eine Verbindung herstellen.Wenn Sie diese Schritte ausführen, können Sie sicherstellen, dass Nginx das Websocket -Protokoll -Upgrades korrekt behandelt.
Wenn Sie Probleme mit dem Websocket -Proxying in Nginx stoßen, befolgen Sie diese Schritte zur Fehlerbehebung:
http
, server
und location
hinzugefügt werden. Verwenden Sie nginx -t
um die Konfiguration auf Syntaxfehler zu testen./var/log/nginx/
) für alle Websocket-bezogenen Fehler oder Probleme. Suchen Sie nach Einträgen zu WebSocket -Verbindungen und Upgrade -Anforderungen.wscat
oder websocat
um WebSocket -Verbindungen direkt aus der Befehlszeile zu testen. Dies kann helfen, zu isolieren, ob das Problem mit Nginx oder dem Backend -Server liegt.proxy_read_timeout
von Nginx und proxy_send_timeout
an.Durch systematische Durchführung dieser Schritte zur Fehlerbehebung sollten Sie in der Lage sein, Probleme mit WebSocket -Proxying in Nginx zu identifizieren und zu beheben.
Das obige ist der detaillierte Inhalt vonWie konfiguriere ich Nginx für WebSocket -Proxying?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!