Estoy tan perdido y nuevo en la construcción de NGINX por mi cuenta, pero quiero poder habilitar websockets seguros sin tener una capa adicional.
No quiero habilitar SSL en el servidor websocket, sino que quiero usar NGINX para agregar una capa SSL a todo.
Cada página web dice que no puedo hacerlo, ¡pero sé que puedo! ¡Gracias a quien (yo) pueda mostrarme cómo!
proxy_read_timeout
funciona, edité la respuesta.location
directiva se coloca dentro de unaserver
u otralocation
directiva (ver documentos de ubicación ).backend_host
es unupstream
(ver documentos ascendentes ): uno o un grupo de servidores a los que va a enviar un proxy.No tengas miedo, porque un valiente grupo de programadores de operaciones ha resuelto la situación con un nuevo nginx_tcp_proxy_module.
Escrito en agosto de 2012, así que si eres del futuro deberías hacer tu tarea.
Prerrequisitos
Asume que está usando CentOS:
init.d/nginx
script)yum install pcre pcre-devel openssl openssl-devel
y cualquier otra biblioteca necesaria para construir NGINXConstruye tu nuevo NGINX
De nuevo, asume 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
(puede agregar más módulos si los necesita)make
make install
Opcional:
sudo /sbin/chkconfig nginx on
Configurar Nginx
Recuerde copiar primero sus archivos de configuración anteriores si desea reutilizarlos.
Importante: necesitará crear una
tcp {}
directiva al más alto nivel en su conf. Asegúrese de que no esté dentro de suhttp {}
directiva.La siguiente configuración de ejemplo muestra un único servidor websocket ascendente y dos servidores proxy para SSL y no SSL.
fuente
Esto funcionó para mí:
- prestado de: https://github.com/nicokaiser/nginx-websocket-proxy/blob/df67cd92f71bfcb513b343beaa89cb33ab09fb05/simple-wss.conf
fuente
# WebSocket support
corte lo hizo por mí. Anteriormente estaba tratando de reenviar el puerto 400, sin embargo, wss funciona en 443. FYI futuros lectores :)para .net core 2.0 Nginx con SSL
Esto funciono para mi
fuente
Para mí, todo se redujo a la
proxy_pass
configuración de ubicación. Necesitaba cambiar para usar el protocolo HTTPS y tener un certificado SSL válido configurado en el lado del servidor del nodo. De esa manera, cuando introduzco un servidor de nodo externo, solo tengo que cambiar la IP y todo lo demás sigue siendo la misma configuración.Espero que esto ayude a alguien en el camino ... Estuve mirando el problema todo el tiempo ... suspiro ...
fuente
localtion /horizon
, pero no funciona. Sololocaltion /
olocation /websockify
funciona. No sé por qué ...Un buen y conciso artículo de Pankaj Malhotra discute cómo hacer esto con NGINX y está disponible aquí .
La configuración básica de NGINX se reproduce a continuación:
fuente
Usando nginx / 1.14.0
tengo un servidor websocket que se ejecuta en el puerto 8097 y los usuarios se conectan a wss en el puerto 8098, nginx simplemente descifra el contenido y lo reenvía al servidor websocket
Entonces tengo este archivo de configuración (en mi caso
/etc/nginx/conf.d/default.conf
)fuente