我正在使用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 #####; .... }