Aktueller Standort: Startseite> Neueste Artikel> Eine vollständige Anleitung zum NGINX -Konfigurieren von WebSocket -Proxy -Unterstützung

Eine vollständige Anleitung zum NGINX -Konfigurieren von WebSocket -Proxy -Unterstützung

M66 2025-07-09

Verstehen Sie die Rolle des Websocket -Protokolls und des Nginx

WebSocket ist ein TCP-basiertes Full-Duplex-Kommunikationsprotokoll, das eine anhaltende Zwei-Wege-Kommunikation zwischen Servern und Clients in Echtzeit ermöglicht. Diese Funktion macht es für Live-Chat, Echtzeit-Datenschub und andere Szenarien sehr geeignet. In der tatsächlichen Bereitstellung muss NGINX in der Regel als Reverse -Proxy -Server verwendet werden, um WebSocket -Verbindungsanforderungen weiterzuleiten und zu verwalten.

Stellen Sie sicher, dass Nginx installiert ist

Bitte stellen Sie zunächst sicher, dass Nginx in Ihrer Serverumgebung korrekt installiert ist. Wenn es nicht installiert wurde, kann die Bereitstellung gemäß dem Betriebssystem durch Ausführen des entsprechenden Installationsbefehls abgeschlossen werden.

Ändern Sie die NGINX -Konfiguration, um WebSocket zu unterstützen

Um NGINX -Unterstützung von WebSocket zu unterstützen, müssen Konfigurationsdateien angepasst werden. Hier finden Sie ein Beispiel für die im HTTP -Modul hinzugefügte Konfiguration:

Karte $ http_upgrade $ connection_upgrade {
    Standard -Upgrade;
    '' schließen;
}

Upstream Backend {
    Server 127.0.0.1:8080;
}

Der Zweck dieser Konfiguration besteht darin, das Feld Upgrade im Client -Anforderungsheader auf eine benutzerdefinierte Variable $ connection_Upgrade für die nachfolgende Proxy -Verwendung zuzuordnen. Gleichzeitig wird ein vorgelagerter Server mit dem Namen Backend definiert, der auf den lokalen Port 8080 zeigt.

Einrichten des Serverblocks, um WebSocket -Proxy zu implementieren

Fügen Sie dem Serverblock die folgende Standortkonfiguration hinzu, um WebSocket -Anforderungen für die Übereinstimmungspfade zu bearbeiten:

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 wird verwendet, um den Proxy -Pfad, die Weiterleitungsadresse und die erforderlichen Anforderungsheaderfelder festzulegen, um sicherzustellen, dass WebSocket -Verbindungen erfolgreich proxyiert werden können.

Starten Sie Nginx neu, damit die Konfiguration wirksam wird

Speichern und schließen Sie die Datei nach dem Ändern der Konfigurationsdatei und starten Sie den Nginx -Dienst in der Befehlszeile neu, um die Konfiguration in Kraft zu setzen:

sudo service nginx neu starten

Testen Sie, ob die Websocket -Verbindung erfolgreich ist

Sie können das WebSocket -Client -Tool verwenden oder eine einfache Webseite erstellen, um zu testen, ob die WebSocket -Verbindung gültig ist. Hier ist ein grundlegendes 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");
};

Speichern Sie den obigen Code als HTML -Datei und öffnen Sie ihn in Ihrem Browser. Wenn Sie eine Eingabeaufforderung für eine erfolgreiche Verbindung im Entwickler -Tool sehen, ist die Konfiguration erfolgreich.

Zusammenfassen

Durch die Konfiguration der Proxy -Funktion von NGINX können wir das WebSocket -Protokoll für Backend -Anwendungen unterstützen. Diese Methode verbessert nicht nur die Kommunikationseffizienz, sondern macht das gesamte System auch stabiler und skalierbarer mit Hilfe der hohen Leistungs- und Sicherheitsmerkmale von NGINX. Es ist zu beachten, dass Nginx selbst das WebSocket -Protokoll nicht behandelt, sondern nur als Zwischenproxy fungiert und die Verbindung zur Backend -Anwendung für die Verarbeitung weiterleitet. Wenn Sie eine komplexere WebSocket -Servicelogik implementieren müssen, wird empfohlen, einen dedizierten Backend WebSocket -Server zur Verarbeitung zu verwenden.