Nginx的TCP(WebSockets)超时/ Keepaliveconfiguration

我正在使用nginx version: nginx/1.0.12

我的nginx.conf如下所示:

 #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/*; } 

我的应用程序似乎每75秒(或左右),我认为是由于Nginx的默认keepaliveconfiguration下降websocket连接。 如何增加暂停?

谢谢

我试过了nginx 1.7.1不支持的websocket_*_timeout (它给出: unknown指令 )。

然而设置一个高proxy_*_timeout工作:

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

7d表示7天,请参阅官方的nginx配置参考

另外你可能只需要设置proxy_read_timeout 7d; 因为这是通常很重要的,除非代理服务器后面的服务器非常慢。

这些高明的家伙有同样的问题,解决了它….

NGINX反向代理websockets并启用SSL(wss://)?

此外,在这个模块的原始回购是从模块作者更多的指示。

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

它基本上相当于在服务器指令中添加websocket _ * _ timeout指令:

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