Kann dies:Ist es möglich, einen WebSocket über NGINX über TLS weiterzuleiten?
Ein Knoten JS-Server, der als WebSocket-Client
NGINX die WebSocket Verkehr
Arbeit über TLS
JVM Socket Server Handling?
Kann dies:Ist es möglich, einen WebSocket über NGINX über TLS weiterzuleiten?
Ein Knoten JS-Server, der als WebSocket-Client
NGINX die WebSocket Verkehr
Arbeit über TLS
JVM Socket Server Handling?
Sicher, kann ich zwei Möglichkeiten zur Einrichtung vorstellen, dieses:
Hinzufügen Der zweite Der Ansatz hat mehr Vorteile, da er auch die Verbindung zwischen Nginx und Websocket sicherstellt (stellen Sie sich vor, Sie möchten diese in zwei verschiedenen Containern/Maschinen hosten).
Imag ine ein Diagramm, wie dies für den ersten Ansatz:
Nodejs Socket Client <--Secure--> Nginx <--NOT Secure--> JVM
und so etwas wie dies für den zweiten Ansatz:
Nodejs Socket Client <--Secure--> Nginx <--Secure--> JVM
ich hier ein öffentliches Repository erstellt haben, die zeigt, wie Sie Setup kann der erste Ansatz : https://github.com/afshinm/websocket_tls_docker
Setup-TLS auf der serverseitigen
Wenn Sie den zweiten Ansatz verwenden möchten, variiert es von Framework zu Framework. Sie müssten die Dokumentationen lesen. Bedenken Sie jedoch, dass Nginx Ihren Datenverkehr entschlüsseln und verschlüsseln kann. In diesem Fall müssen Sie lediglich den Wert proxy_pass
in https://...
ändern, damit Nginx den Datenverkehr zuerst entschlüsseln kann.
Aber für den ersten Ansatz fügen Sie einfach folgende Einstellungen an Ihre server
Konfiguration TLS zu aktivieren:
ssl on;
ssl_certificate /path/ssl-bundle.crt;
ssl_certificate_key /path/myserver.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
Und vergessen Sie nicht, diese zu Ihrem server
oder location
Block hinzufügen (entsprechend Ihrer config):
proxy_pass http://your_jvm_backend_host;
proxy_http_version 1.1;
proxy_set_header Connection "upgrade";
proxy_set_header Upgrade $http_upgrade;
proxy_read_timeout 86400;
Nun Sie Verbindung von Nginx für Ihre Kunden sicher (wss://...
).
Setup-Client
Unter der Annahme, dass Sie ws
Paket verwenden, können Sie auf die sichere Websocket Verbindung wie folgt verbinden:
const WebSocket = require('ws');
const ws = new WebSocket('wss://your_backend');
ws.on('open', function open() {
ws.send('Hola!');
});
Das ist es.
Nur um sicherzustellen, dass ich die Frage richtig verstanden habe, stellt der JVM-Server eine Websocket-Verbindung her, richtig? –
https://www.nginx.com/blog/websocket-nginx/ – tkausl