So konfigurieren Sie den Nginx-Reverse-Proxy-WebSocket
Da das Websocket-Protokoll basierend auf dem http-Protokoll aktualisiert wird (siehe Abbildung unten), können Sie Nginx Reverse Proxy Websocket verwenden.
Websocket
Wie Sie auf diesem Bild sehen können, wird die Websocket-Verbindung basierend auf hergestellt das http-Protokoll auf Basis.
get /chat http/1.1 host: server.example.com upgrade: websocket connection: upgrade sec-websocket-key: x3jjhmbdl1ezlkh9gbhxdw== sec-websocket-protocol: chat, superchat sec-websocket-version: 13 origin: http://example.com
Kinder, die mit http vertraut sind, haben vielleicht bemerkt, dass diese Handshake-Anfrage nur noch ein paar weitere Dinge enthält, die dem http-Protokoll ähneln.
upgrade: websocket connection: upgrade 这个就是websocket的核心了,告诉apache、nginx等服务器:我发起的是websocket协议。 sec-websocket-key: x3jjhmbdl1ezlkh9gbhxdw== sec-websocket-protocol: chat, superchat sec-websocket-version: 13
Zuallererst ist sec-websocket-key ein Base64-Kodierungswert, der zufällig vom Browser generiert wird. Er sagt dem Server: Torf, täuschen Sie mich nicht, ich möchte überprüfen, ob Sie wirklich ein Websocket-Assistent sind .
Schließlich teilt sec-websocket-version dem Server den verwendeten Websocket-Entwurf (Protokollversion) mit. Zu Beginn befand sich das Websocket-Protokoll noch im Entwurfsstadium. Es gab viele seltsame Protokolle. Es ist seltsam, dass Firefox und Chrome unterschiedliche Versionen verwenden. Am Anfang gab es zu viele Websocket-Protokolle, was ein großes Problem war. . Aber jetzt ist es in Ordnung, es ist erledigt. Es ist eine Sache, die jeder nutzt. Dann gibt der Server Folgendes zurück und zeigt an, dass die Anfrage angenommen und der Websocket erfolgreich eingerichtet wurde!
http/1.1 101 switching protocols upgrade: websocket connection: upgrade sec-websocket-accept: hsmrc0smlyukagmm5oppg2hagwk= sec-websocket-protocol: chat
Dies ist der letzte Bereich, für den http verantwortlich ist. Er teilt dem Client mit, dass ich das Protokoll erfolgreich gewechselt habe. ~
upgrade: websocket connection: upgrade
Es ist immer noch behoben und teilt dem Client mit, dass es sich bei dem bevorstehenden Upgrade um das Websocket-Protokoll handelt. Zu diesem Zeitpunkt hat http seine gesamte Arbeit abgeschlossen und der nächste Schritt besteht darin, vollständig gemäß dem Websocket-Protokoll vorzugehen.
Sobald Sie das Prinzip des Protokolls verstanden haben, können Sie mit dem nächsten Schritt fortfahren
Zuerst konfiguriert Nginx zuerst das https-ZertifikatDas Serverzertifikat wurde vom Chef konfiguriert, daher habe ich es direkt verwendet. Überprüfen Sie es bei Bedarf selbst. 0.0
Fügen Sie die folgende Konfiguration im Knoten service
der Nginx-Konfigurationsdatei hinzu Nur zufällig Ja, teilen Sie Nginx die URL mit, die als Proxy verwendet werden soll. Wenn ich auf meinen Server https://abc.com/wss
zugreife, führt Nginx eine Zuordnung durch meine Anfrage an Port 8888 dieser Maschine.
proxy_pass
Die URL, an die Sie einen Proxy senden möchten. Mein Proxy ist der 8888-Port dieser Maschine. service
节点中添加如下配置
location /wss { proxy_pass http://127.0.0.1:8888; proxy_http_version 1.1; proxy_set_header upgrade $http_upgrade; proxy_set_header connection "upgrade"; proxy_set_header x-real-ip $remote_addr; }
解释一下参数
/wss
这个是随便起的,告诉nginx要代理的url,现在我的设置为 wss
,当我访问的我的服务器 https://abc.com/wss
时,nginx会把我的请求映射到本机的8888端口。
proxy_pass
要代理到的url,我的代理到本机的8888端口。
proxy_http_version
代理时使用的 http版本。
重点来了:
代理websocket的关键参数
proxy_set_header upgrade
把代理时http请求头的 upgrade
设置为原来http请求的请求头,wss协议的请求头为 websocket
proxy_set_header connection
因为代理的wss协议,所以http请求头的 connection
设置为 upgrade
proxy_set_header x-real-ip
给代理设置原http请求的ip,填写 $remote_addr
即可
至于websocket协议的response的参数,在反向代理的时候不用管。
到这里,nginx反向代理websocket的配置就完成了,重启nginx,用websocket连接试试,在原来wss地址的地方填写 wss://abc.com/wss
proxy_http_version
Die beim Proxying verwendete HTTP-Version. Hier kommt der entscheidende Punkt:
Schlüsselparameter des Proxy-Websocketsproxy_set_header upgrade
Setzen Sie den upgrade
des HTTP-Anforderungsheaders während des Proxys auf den Anforderungsheader von Der ursprüngliche HTTP-Anfrage-Header des WSS-Protokolls ist websocket
proxy_set_header-Verbindung
Aufgrund des Proxy-WSS-Protokolls ist der HTTP-Anfrage-Header Verbindung< /code> ist auf <code >upgrade
proxy_set_header x-real-ip
gesetzt. Legen Sie die IP der ursprünglichen http-Anfrage für den Proxy fest und geben Sie ein $remote_addr
Wie für Websocket Die Antwortparameter des Protokolls müssen während des Reverse-Proxys nicht gesteuert werden. An diesem Punkt ist die Konfiguration des Nginx-Reverse-Proxy-Websockets abgeschlossen. Starten Sie Nginx neu, versuchen Sie, eine Verbindung mit dem Websocket herzustellen, und geben Sie wss://abc.com/wss
anstelle des ursprünglichen wss ein Adresse. Wenn die Verbindung zum Websocket erfolgreich hergestellt wurde, bedeutet dies, dass der Nginx-Reverse-Proxy-Websocket erfolgreich war. 🎜Zusammenfassung🎜🎜🎜Die aktuelle Konfiguration ist nur die Konfiguration beim Reverse-Proxy auf dem lokalen Computer. Wenn Sie den Proxy auf andere Hosts umkehren möchten, kann es zu domänenübergreifenden Problemen kommen Nginx-Reverse-Proxy. 🎜🎜🎜Thinking🎜🎜🎜Sie können diesen Absatz in der Nginx-Konfigurationsdatei sehen🎜location ~ .php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param script_filename $document_root$fastcgi_script_name; include fastcgi_params; }
location /tomcat { proxy_pass http://127.0.0.1:8080; proxy_http_version 1.1; proxy_set_header x-real-ip $remote_addr; }
Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie den Nginx-Reverse-Proxy-WebSocket. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Sie können den Namen des Docker -Containers abfragen, indem Sie den Schritten folgen: Alle Container auflisten (Docker PS). Filtern Sie die Containerliste (unter Verwendung des GREP -Befehls). Ruft den Containernamen ab (befindet sich in der Spalte "Namen").

So konfigurieren Sie einen Nginx -Domänennamen auf einem Cloud -Server: Erstellen Sie einen Datensatz, der auf die öffentliche IP -Adresse des Cloud -Servers zeigt. Fügen Sie virtuelle Hostblöcke in die NGINX -Konfigurationsdatei hinzu, wobei der Hörport, Domänenname und das Root -Verzeichnis der Website angegeben werden. Starten Sie Nginx neu, um die Änderungen anzuwenden. Greifen Sie auf die Konfiguration des Domänennamens zu. Weitere Hinweise: Installieren Sie das SSL -Zertifikat, um HTTPS zu aktivieren, sicherzustellen, dass die Firewall den Verkehr von Port 80 ermöglicht, und warten Sie, bis die DNS -Auflösung wirksam wird.

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 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.

Die Methoden, die die Nginx -Version abfragen können, sind: Verwenden Sie den Befehl nginx -v; Zeigen Sie die Versionsrichtlinie in der Datei nginx.conf an. Öffnen Sie die Nginx -Fehlerseite und sehen Sie sich den Seitentitel an.

Das Starten eines Nginx-Servers erfordert unterschiedliche Schritte gemäß verschiedenen Betriebssystemen: Linux/UNIX-System: Installieren Sie das NGINX-Paket (z. B. mit APT-Get oder Yum). Verwenden Sie SystemCTL, um einen Nginx -Dienst zu starten (z. B. sudo systemctl start nginx). Windows -System: Laden Sie Windows -Binärdateien herunter und installieren Sie sie. Starten Sie Nginx mit der ausführbaren Datei nginx.exe (z. B. nginx.exe -c conf \ nginx.conf). Unabhängig davon, welches Betriebssystem Sie verwenden, können Sie auf die Server -IP zugreifen

Startschritte des Docker -Containers: Ziehen Sie das Containerbild: Führen Sie "Docker Pull [Mirror Name]" aus. Erstellen eines Containers: Verwenden Sie "Docker erstellen [Optionen] [Spiegelname] [Befehle und Parameter]". Starten Sie den Container: Führen Sie "Docker Start [Container Name oder ID]" aus. Containerstatus überprüfen: Stellen Sie sicher, dass der Container mit "Docker PS" ausgeführt wird.

Erstellen Sie einen Container in Docker: 1. Ziehen Sie das Bild: Docker Pull [Spiegelname] 2. Erstellen Sie einen Container: Docker Ausführen [Optionen] [Spiegelname] [Befehl] 3. Starten Sie den Container: Docker Start [Containername]
