Ich bin so verloren und neu darin, NGINX selbst zu erstellen, aber ich möchte in der Lage sein, sichere Websockets ohne zusätzliche Ebene zu aktivieren.
Ich möchte SSL nicht auf dem Websocket-Server selbst aktivieren, sondern stattdessen NGINX verwenden, um dem Ganzen eine SSL-Schicht hinzuzufügen.
Jede Webseite da draußen sagt, dass ich es nicht kann, aber ich weiß, dass ich es kann! Vielen Dank an alle, die mir zeigen können, wie!
proxy_read_timeout
ich die Antwort bearbeitet.location
Direktive wird in eineserver
oder eine anderelocation
Direktive eingefügt (siehe Standortdokumente ).backend_host
ist einupstream
(siehe Upstream-Dokumente ) - ein oder eine Gruppe von Servern, für die Sie einen Proxy erstellen.Hab keine Angst, denn eine mutige Gruppe von Ops-Programmierern hat die Situation mit einem brandneuen nginx_tcp_proxy_module gelöst
Geschrieben im August 2012, wenn Sie also aus der Zukunft kommen, sollten Sie Ihre Hausaufgaben machen.
Voraussetzungen
Angenommen, Sie verwenden CentOS:
init.d/nginx
Skripts).yum install pcre pcre-devel openssl openssl-devel
und alle anderen notwendigen Bibliotheken zum Erstellen von NGINXErstellen Sie Ihren neuen NGINX
Wiederum wird CentOS angenommen:
cd /usr/local/
wget 'http://nginx.org/download/nginx-1.2.1.tar.gz'
tar -xzvf nginx-1.2.1.tar.gz
cd nginx-1.2.1/
patch -p1 < /path/to/nginx_tcp_proxy_module/tcp.patch
./configure --add-module=/path/to/nginx_tcp_proxy_module --with-http_ssl_module
(Sie können weitere Module hinzufügen, wenn Sie sie benötigen)make
make install
Optional:
sudo /sbin/chkconfig nginx on
Richten Sie Nginx ein
Denken Sie daran, zuerst Ihre alten Konfigurationsdateien zu kopieren, wenn Sie sie wiederverwenden möchten.
Wichtig: Sie müssen eine
tcp {}
Direktive auf höchster Ebene in Ihrer Conf erstellen. Stellen Sie sicher, dass es nicht in Ihrerhttp {}
Richtlinie enthalten ist.Die folgende Beispielkonfiguration zeigt einen einzelnen Upstream-Websocket-Server und zwei Proxys für SSL und Nicht-SSL.
quelle
Das hat bei mir funktioniert:
- ausgeliehen von: https://github.com/nicokaiser/nginx-websocket-proxy/blob/df67cd92f71bfcb513b343beaa89cb33ab09fb05/simple-wss.conf
quelle
# WebSocket support
Snipped hat es für mich getan. Ich habe zuvor versucht, Port 400 weiterzuleiten, aber wss funktioniert über 443. Zu Ihrer Information zukünftige Leser :)für .net Core 2.0 Nginx mit SSL
Das hat bei mir funktioniert
quelle
Für mich kam es auf die
proxy_pass
Standorteinstellung an. Ich musste auf die Verwendung des HTTPS-Protokolls umsteigen und ein gültiges SSL-Zertifikat auf der Seite des Knotenservers einrichten. Auf diese Weise muss ich beim Einführen eines externen Knotenservers nur die IP ändern und alles andere bleibt dieselbe Konfiguration.Ich hoffe, das hilft jemandem auf dem Weg ... Ich habe die ganze Zeit auf das Problem gestarrt ... seufz ...
quelle
localtion /horizon
, aber es funktioniert nicht. Nurlocaltion /
oderlocation /websockify
funktioniert. Ich weiß nicht warum ...Ein guter, prägnanter Artikel von Pankaj Malhotra beschreibt, wie dies mit NGINX gemacht wird und ist hier verfügbar .
Die grundlegende NGINX-Konfiguration ist unten wiedergegeben:
quelle
Verwenden von nginx / 1.14.0
Ich habe einen Websocket-Server, der auf Port 8097 ausgeführt wird, und Benutzer stellen eine Verbindung zu wss auf Port 8098 her. Nginx entschlüsselt nur den Inhalt und leitet ihn an den Websocket-Server weiter
Also habe ich diese Konfigurationsdatei (in meinem Fall
/etc/nginx/conf.d/default.conf
)quelle