Nginx TCP (WebSockets) Timeout / Keepalive Config
nginx, tcp, websocket
Solution
I tried the `websocket_*_timeout` which are not supported on nginx 1.7.1 (it gives: unknown directive).
However setting a high `proxy_*_timeout` works:
proxy_connect_timeout 7d;
proxy_send_timeout 7d;
proxy_read_timeout 7d;
`7d` means 7 days, see official nginx configuration reference
Additionally you probably only have to set the `proxy_read_timeout 7d;` as that's the one that usually matter unless the server behind the proxy is very slow.
Problem
I am using `nginx version: nginx/1.0.12` My nginx.conf looks like this: ``` #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/*; } ``` My application seems to be dropping websocket connnections every 75 sec (or so) which I think is because of Nginx's default keepalive config. How do increase the timeout?