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.