suchen
HeimBetrieb und InstandhaltungNginxWie Nginx die WebSocket-Konfiguration implementiert

Wie Nginx die WebSocket-Konfiguration implementiert

Nov 08, 2023 am 10:37 AM
nginxwebsocket配置

Wie Nginx die WebSocket-Konfiguration implementiert

Als Hochleistungs-Webserver und Reverse-Proxy-Server verfügt Nginx auch über eine eigene einzigartige Konfigurationsmethode für die Verarbeitung von WebSocket-Anfragen. WebSocket ist ein TCP-basiertes Protokoll. Der Aufbau einer WebSocket-Verbindung erfordert einen Drei-Wege-Handshake. Nach Abschluss des Handshakes kann eine bidirektionale Kommunikation zwischen dem Client und dem Server erfolgen. Im Folgenden stellen wir anhand spezifischer Codebeispiele vor, wie die WebSocket-Konfiguration in Nginx implementiert wird.

Zuerst müssen Sie die WebSocket-bezogene Konfiguration zur Nginx-Konfigurationsdatei hinzufügen.

http {
  ...
  upstream websocket {
    server localhost:9001;
  }
  ...
  map $http_upgrade $connection_upgrade {
      default upgrade;
      ''      close;
  }
  ...
  server {
      listen 80;
      server_name example.com;

      location / {
          proxy_pass http://websocket;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection $connection_upgrade;
          proxy_set_header Host $host;
      }
      ...
  }
  ...
}

In der obigen Konfiguration haben wir einen Upstream mit dem Namen „websocket“ hinzugefügt, um die Zielserveradresse und den Port von WebSocket anzugeben. Gleichzeitig wird die Map-Direktive verwendet, um $http_upgrade (Header der Client-Upgrade-Anfrage) und $connection_upgrade (Header der Nginx-Upgrade-Anfrage) zuzuordnen. Auf diese Weise kann Nginx durch Hinzufügen der Felder „Upgrade“ und „Verbindung“ zum Upgrade-Anforderungsheader des Clients veranlasst werden, das HTTP-Protokoll auf das WebSocket-Protokoll zu aktualisieren und so eine bidirektionale Kommunikation zu erreichen.

Im Serverblock verwenden wir die Proxy_pass-Direktive, um alle WebSocket-Anfragen an den WebSocket-Upstream weiterzuleiten und die Protokollversion und die Anforderungsheaderinformationen festzulegen. Es ist zu beachten, dass beim Proxying von WebSocket in Nginx die Anforderungsheader „Upgrade“ und „Verbindung“ zusammen an den Zielserver gesendet werden müssen, da sonst die Verbindung geschlossen wird. Daher müssen diese beiden Anforderungsheader manuell über die Direktive „proxy_set_header“ festgelegt werden . Hinzufügen zu.

Außerdem ist zu beachten, dass wir in der obigen Konfiguration nur den HTTP (80)-Port abgehört haben. Wenn Sie WebSocket unter HTTPS konfigurieren müssen, müssen Sie die folgenden Anweisungen im Serverblock hinzufügen:

listen 443 ssl;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;

Die obigen Anweisungen werden verwendet, um den HTTPS-Port (443) zu überwachen und den Pfad und Namen des Zertifikats und der Schlüsseldateien anzugeben.

Das Folgende ist ein spezifisches WebSocket-Server-Codebeispiel, das mit Node.js implementiert wurde:

const WebSocket = require('ws');

const server = new WebSocket.Server({ port: 9001 });

server.on('connection', (socket, req) => {
  console.log('Client connected');

  socket.on('message', (message) => {
    console.log(`Received message: ${message}`);
    socket.send(`Your message: ${message}`);
  });

  socket.on('close', () => {
    console.log('Client disconnected');
  });
});

In diesem Code haben wir einen WebSocket-Server erstellt und Port 9001 abgehört. Nachdem die Verbindung hergestellt wurde, geben wir die Informationen „Client verbunden“ aus, und nachdem wir die Nachricht des Clients empfangen haben, senden wir die Nachricht an den Client zurück, warten dann auf das Schließereignis und geben die Informationen „Client getrennt“ aus.

Mit den oben genannten Code- und Konfigurationsbeispielen können wir die Proxy- und Kommunikationsarbeit des WebSocket-Protokolls in Nginx implementieren. Es ist zu beachten, dass es bei der Verwendung des WebSocket-Protokolls noch gewisse Einschränkungen gibt. Insbesondere ähnelt der Aufbauprozess der WebSocket-Verbindung dem HTTP/HTTPS-Protokoll. Sobald die Verbindung jedoch erfolgreich hergestellt wurde, erfolgt die Kommunikation zwischen beiden Parteien verlassen sich vollständig auf das WebSocket-Protokoll. Es ist nicht mehr auf das HTTP/HTTPS-Protokoll angewiesen. Daher müssen Sie bei der Verwendung des WebSocket-Protokolls einige herkömmliche Einschränkungen bei der Webentwicklung vermeiden und gleichzeitig auch auf Aspekte wie Sicherheit und Stabilität achten.

Das obige ist der detaillierte Inhalt vonWie Nginx die WebSocket-Konfiguration implementiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Nginx -Einheit: Unterstützung verschiedener ProgrammiersprachenNginx -Einheit: Unterstützung verschiedener ProgrammiersprachenApr 16, 2025 am 12:15 AM

NginxUnit unterstützt mehrere Programmiersprachen und wird durch modulares Design implementiert. 1. Ladesprachmodul: Laden Sie das entsprechende Modul gemäß der Konfigurationsdatei. 2. Anwendungsstart: Führen Sie den Anwendungscode aus, wenn die aufrufende Sprache ausgeführt wird. 3. Anforderungsverarbeitung: Leiten Sie die Anfrage an die Anwendungsinstanz weiter. 4. Antwortrückgabe: Gibt die verarbeitete Antwort an den Client zurück.

Wählen Sie zwischen Nginx und Apache: Die richtige Passform für Ihre AnforderungenWählen Sie zwischen Nginx und Apache: Die richtige Passform für Ihre AnforderungenApr 15, 2025 am 12:04 AM

Nginx und Apache haben ihre eigenen Vor- und Nachteile und eignen sich für verschiedene Szenarien. 1.Nginx ist für hohe Parallelitäts- und geringe Ressourcenverbrauchsszenarien geeignet. 2. Apache eignet sich für Szenarien, in denen komplexe Konfigurationen und reichhaltige Module erforderlich sind. Durch den Vergleich ihrer Kernfunktionen, Leistungsunterschiede und Best Practices können Sie die Serversoftware auswählen, die Ihren Anforderungen am besten entspricht.

So starten Sie NginxSo starten Sie NginxApr 14, 2025 pm 01:06 PM

Frage: Wie starte ich Nginx? Antwort: Installieren Sie Nginx Startup Nginx -Verifizierung Nginx Is Nginx Start Erkunden

So überprüfen Sie, ob Nginx gestartet wirdSo überprüfen Sie, ob Nginx gestartet wirdApr 14, 2025 pm 01:03 PM

So bestätigen Sie, ob Nginx gestartet wird: 1. Verwenden Sie die Befehlszeile: SystemCTL Status Nginx (Linux/Unix), Netstat -ano | FindStr 80 (Windows); 2. Überprüfen Sie, ob Port 80 geöffnet ist; 3. Überprüfen Sie die Nginx -Startmeldung im Systemprotokoll. 4. Verwenden Sie Tools von Drittanbietern wie Nagios, Zabbix und Icinga.

Wie man nginx schließtWie man nginx schließtApr 14, 2025 pm 01:00 PM

To shut down the Nginx service, follow these steps: Determine the installation type: Red Hat/CentOS (systemctl status nginx) or Debian/Ubuntu (service nginx status) Stop the service: Red Hat/CentOS (systemctl stop nginx) or Debian/Ubuntu (service nginx stop) Disable automatic startup (optional): Red Hat/CentOS (systemctl disabled nginx) or Debian/Ubuntu (syst

So konfigurieren Sie Nginx in WindowsSo konfigurieren Sie Nginx in WindowsApr 14, 2025 pm 12:57 PM

Wie konfiguriere ich Nginx in Windows? Installieren Sie NGINX und erstellen Sie eine virtuelle Hostkonfiguration. Ändern Sie die Hauptkonfigurationsdatei und geben Sie die Konfiguration der virtuellen Host ein. Starten oder laden Nginx neu. Testen Sie die Konfiguration und sehen Sie sich die Website an. Aktivieren Sie selektiv SSL und konfigurieren Sie SSL -Zertifikate. Stellen Sie die Firewall selektiv fest, damit Port 80 und 443 Verkehr.

So lösen Sie Nginx403 -FehlerSo lösen Sie Nginx403 -FehlerApr 14, 2025 pm 12:54 PM

Der Server verfügt nicht über die Berechtigung, auf die angeforderte Ressource zuzugreifen, was zu einem NGINX 403 -Fehler führt. Zu den Lösungen gehören: Überprüfung der Dateiberechtigungen. Überprüfen Sie die Konfiguration .htaccess. Überprüfen Sie die Nginx -Konfiguration. Konfigurieren Sie Selinux -Berechtigungen. Überprüfen Sie die Firewall -Regeln. Fehlerbehebung bei anderen Ursachen wie Browserproblemen, Serverausfällen oder anderen möglichen Fehlern.

So starten Sie Nginx unter LinuxSo starten Sie Nginx unter LinuxApr 14, 2025 pm 12:51 PM

Schritte zum Starten von Nginx unter Linux: Überprüfen Sie, ob Nginx installiert ist. Verwenden Sie SystemCTL Start Nginx, um den Nginx -Dienst zu starten. Verwenden Sie SystemCTL aktivieren NGINX, um das automatische Start von NGINX beim Systemstart zu aktivieren. Verwenden Sie den SystemCTL -Status NGINX, um zu überprüfen, ob das Startup erfolgreich ist. Besuchen Sie http: // localhost in einem Webbrowser, um die Standard -Begrüßungsseite anzuzeigen.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),