WebSocket ist ein TCP-basiertes Full-Duplex-Kommunikationsprotokoll, mit dem anhaltende Verbindungen zwischen Clients und Servern eine Zwei-Wege-Übertragung von Echtzeitdaten erreicht werden können. Im Vergleich zu herkömmlichen HTTP-Umfragen weist WebSocket eine höhere Effizienz und eine geringere Latenz in Szenarien wie sofortiger Kommunikation und Echtzeit-Push auf.
In der tatsächlichen Bereitstellung müssen wir häufig Nginx als Front-End-Proxy-Server verwenden, um Lastausgleich, sichere Zugriffskontrolle, Pfadweiterung und andere Funktionen zu verarbeiten. Um das WebSocket -Protokoll zu unterstützen, ist eine zusätzliche Konfiguration von NGINX erforderlich, um sicherzustellen, dass die Verbindung stabil und kontinuierlich an den Backend -Service geliefert werden kann.
Stellen Sie zunächst sicher, dass NGINX auf Ihrem Server installiert ist. Es kann über das Paketmanagement -Tool installiert werden:
sudo apt install nginx # debian/ubuntu System sudo yum install nginx # centos System
Nach Abschluss der Installation können Sie Nginx -v verwenden, um die Version anzuzeigen, um sicherzustellen, dass die Installation erfolgreich ist.
Anschließend müssen Sie die Nginx-Konfigurationsdatei ändern, normalerweise die Konfigurationsdatei in /etc/nginx/nginx.conf oder eine Site-fähige .
Karte $ http_upgrade $ connection_upgrade { Standard -Upgrade; '' schließen; } Upstream Backend { Server 127.0.0.1:8080; }
Ziel dieser Konfiguration ist es, eine Zuordnung für den Upgrade -Header der WebSocket -Verbindung einzurichten und die Adresse der Backend -Anwendung anzugeben.
Ort /Websocket { proxy_pass http: // Backend; proxy_http_version 1.1; proxy_set_header upgrade $ http_upgrade; proxy_set_header Verbindung $ connection_upgrade; }
Diese Konfiguration leitet Anfragen zum Zugriff auf den /Websocket -Pfad zum Backend weiter und trägt die erforderlichen Header -Informationen, damit der WebSocket -Handshake -Prozess reibungslos abgeschlossen werden kann.
Führen Sie nach Abschluss der Konfiguration den folgenden Befehl aus, um den Nginx -Dienst neu zu starten:
sudo service nginx neu starten
Wenn die Konfiguration korrekt ist, unterstützt NGINX die Weiterleitung von WebSocket -Verbindungen.
Sie können testen, ob das WebSocket erfolgreich über einen Browser oder ein anderes Client -Tool verbunden ist. Hier ist ein grundlegendes JavaScript -Beispiel:
var ws = new WebSocket ("ws: // your_domain/webocket"); ws.onopen = function () { console.log ("mit WebSocket verbunden"); }; Ws.onMessage = Funktion (Ereignis) { console.log ("empfangene Nachricht:" + event.data); }; ws.onclose = function () { console.log ("von Websocket getrennt"); };
Einbetten Sie den obigen Code in HTML ein und beachten Sie nach dem Öffnen im Browser, ob die Konsole den Verbindungsstatus anzeigen kann.
Durch die Konfiguration von NGINX-Proxy WebSocket können wir einen hohen Leistungsunterstützung in Echtzeit-Kommunikation erreichen. Nginx selbst handelt nicht mit WebSocket-Logik und ist nur für die Weiterleitung von Verbindungen und die Verarbeitung von Protokoll-Headern verantwortlich. Das Backend muss noch über WebSocket -Servicefunktionen verfügen. Bei der Bereitstellung moderner Webanwendungen ist die Kombination von NGINX-Proxy-Funktionen und Back-End-Websocket-Diensten eine ideale Wahl für die Interaktion mit Daten in Echtzeit.