Je suis tellement perdu et nouveau dans la construction de NGINX par moi-même, mais je veux pouvoir activer des websockets sécurisés sans avoir une couche supplémentaire.
Je ne veux pas activer SSL sur le serveur websocket lui-même, mais à la place, je veux utiliser NGINX pour ajouter une couche SSL à l'ensemble.
Chaque page Web dit que je ne peux pas le faire, mais je sais que je peux! Merci à quiconque (moi-même) peut me montrer comment!
proxy_read_timeout
, ça marche, j'ai édité la réponse.location
directive est placée dans uneserver
ou une autrelocation
directive (voir la documentation de localisation ).backend_host
est unupstream
(voir la documentation en amont ) - un ou un groupe de serveurs vers lesquels vous allez utiliser un proxy.N'ayez pas peur, car un groupe courageux de programmeurs Ops a résolu la situation avec un nouveau nginx_tcp_proxy_module
Écrit en août 2012, donc si vous êtes du futur, vous devriez faire vos devoirs.
Conditions préalables
Suppose que vous utilisez CentOS:
init.d/nginx
script)yum install pcre pcre-devel openssl openssl-devel
et toutes les autres bibliothèques nécessaires pour construire NGINXConstruisez votre nouveau NGINX
Encore une fois, suppose CentOS:
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
(vous pouvez ajouter plus de modules si vous en avez besoin)make
make install
Optionnel:
sudo /sbin/chkconfig nginx on
Configurer Nginx
N'oubliez pas de copier d'abord vos anciens fichiers de configuration si vous souhaitez les réutiliser.
Important: vous devrez créer une
tcp {}
directive au plus haut niveau dans votre conf. Assurez-vous que ce n'est pas dans votrehttp {}
directive.L'exemple de configuration ci-dessous montre un seul serveur websocket en amont et deux proxys pour SSL et non SSL.
la source
Cela a fonctionné pour moi:
- emprunté à: https://github.com/nicokaiser/nginx-websocket-proxy/blob/df67cd92f71bfcb513b343beaa89cb33ab09fb05/simple-wss.conf
la source
# WebSocket support
coupure l'a fait pour moi. J'essayais auparavant de transférer le port 400, mais wss fonctionne sur 443. FYI futurs lecteurs :)pour .net core 2.0 Nginx avec SSL
Cela a fonctionné pour moi
la source
Pour moi, cela dépendait du
proxy_pass
réglage de l' emplacement. J'avais besoin de passer à l'utilisation du protocole HTTPS et d'avoir un certificat SSL valide configuré du côté du serveur de nœuds. De cette façon, lorsque j'introduis un serveur de nœud externe, je n'ai qu'à changer l'adresse IP et tout le reste reste la même configuration.J'espère que cela aide quelqu'un en cours de route ... Je regardais le problème tout le temps ... soupir ...
la source
localtion /horizon
, mais ça ne marche pas. Seulementlocaltion /
oulocation /websockify
fonctionne. Je ne sais pas pourquoi ...Un bon article concis de Pankaj Malhotra explique comment faire cela avec NGINX et est disponible ici .
La configuration de base de NGINX est reproduite ci-dessous:
la source
Utilisation de nginx / 1.14.0
j'ai un serveur websocket fonctionnant sur le port 8097 et les utilisateurs se connectent de à wss sur le port 8098, nginx déchiffre simplement le contenu et le transmet au serveur websocket
Donc j'ai ce fichier de configuration (dans mon cas
/etc/nginx/conf.d/default.conf
)la source