proxy_pass proxy_ignore_client_abort proxy_hide_header proxy_headers_hash_max_size proxy_cache_path proxy_cache_lock_timeout nginx tcp websocket

proxy_ignore_client_abort - proxy_cache_path nginx



Nginx TCP(WebSockets) Timeout/Keepalive Config (2)

Estos chicos brillantes tuvieron el mismo problema y lo resolvieron ...

¿NGINX para revertir proxy websockets Y habilitar SSL (wss: //)?

También, aquí en el repositorio original para ese módulo hay más instrucciones del autor del módulo.

https://github.com/yaoweibin/nginx_tcp_proxy_module/issues/28

básicamente equivale a agregar las instrucciones de websocket _ * _ timeout en la directiva del servidor:

server { .... websocket_connect_timeout ######; websocket_send_timeout #####; websocket_read_timeout #####; .... }

Estoy usando la nginx version: nginx/1.0.12

Mi nginx.conf tiene este aspecto:

#user nobody; worker_processes 1; error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } tcp { upstream websockets { ## Play! WS location server 127.0.0.1:9000; check interval=3000 rise=2 fall=5 timeout=1000; } server { listen 80; listen 8000; server_name socket.domain.com; tcp_nodelay on; proxy_pass websockets; proxy_send_timeout 300; } # virtual hosting #include /usr/local/nginx/vhosts/*; }

Mi aplicación parece estar cayendo las conexiones websocket cada 75 segundos (o así), lo que creo que es debido a la configuración keepalive predeterminada de Nginx. ¿Cómo aumentar el tiempo de espera?


websocket_*_timeout el websocket_*_timeout que no es compatible con nginx 1.7.1 (da: directiva desconocida ).

Sin embargo, establecer un alto proxy_*_timeout funciona:

proxy_connect_timeout 7d; proxy_send_timeout 7d; proxy_read_timeout 7d;

7d significa 7 días, consulte la referencia de configuración oficial de nginx

Además, probablemente solo tengas que configurar el proxy_read_timeout 7d; ya que ese es el que usualmente importa a menos que el servidor detrás del proxy sea muy lento.