socket ngnix nginx websocket

ngnix - nginx websocket configuración del proxy inverso



ngnix socket io (1)

Hola, estoy tratando de configurar nginx como proxy inverso para websockets. Configuro mi servidor de la siguiente manera:

server { listen 80; server_name www.mydomain.com; access_log off; #error_log off; location / { proxy_pass http://127.0.0.1:8765; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $http_host; proxy_buffering off; } }

pero recibo un error del cliente como siguiente

No se pudo establecer la conexión WebSocket a ''ws: //www.application.com/ws'': error durante el protocolo de enlace WebSocket: el valor del encabezado ''Conexión'' no es ''Actualizar''

Probablemente estoy haciendo una configuración incorrecta, pero no pude verla.

Solicitar encabezados para el cliente está siguiendo

GET ws://www.talkybee.com/ws HTTP/1.1 Pragma: no-cache Origin: http://www.talkybee.com Host: www.talkybee.com Sec-WebSocket-Key: Ol+O1IdaLEsHxxWRBt2oqg== User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36 Upgrade: websocket Sec-WebSocket-Extensions: x-webkit-deflate-frame Cache-Control: no-cache Connection: Upgrade Sec-WebSocket-Version: 13

Cuando hago una conexión directa normal, mi conexión simplemente funciona. Aquí está el encabezado de solicitud de trabajo.

Cache-Control:no-cache Connection:Upgrade Host:www.talkybee.com:8765 Origin:http://www.talkybee.com:8765 Pragma:no-cache Sec-WebSocket-Extensions:x-webkit-deflate-frame Sec-WebSocket-Key:Y026b/84aUkMxVb0MaKE2A== Sec-WebSocket-Version:13 Upgrade:websocket User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36


Este problema está relacionado con la versión de nginx. Verifique nginx -v, para verificar su versión. Los siguientes parámetros son compatibles después de la versión 1.4 .

# WebSocket support (nginx 1.4) proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";

Si está utilizando ubuntu, puede instalar una versión más nueva con estos pasos:

Primero elimine la versión anterior ( https://askubuntu.com/questions/235347/what-is-the-best-way-to-uninstall-nginx ):

sudo apt-get remove nginx sudo apt-get purge nginx sudo apt-get autoremove

Luego, instale una nueva versión ( https://launchpad.net/~nginx/+archive/development ):

sudo add-apt-repository ppa:nginx/development sudo apt-get update sudo apt-get install nginx