Nginx的TCP(的WebSockets)超时/保持连接配置(Nginx TCP (WebSock

2019-06-24 08:31发布

我使用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/*;
}

我的应用程序似乎是下降的WebSocket connnections每75秒(或左右)我认为这是因为Nginx的默认配置存活的。 如何增加超时?

Answer 1:

我试过websocket_*_timeout未支持的nginx 1.7.1(它给: 未知的指令 )。

然而设置较高的proxy_*_timeout工作:

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

7d装置7天,见官方nginx的配置参考

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



Answer 2:

这些高明人有同样的问题,并解决它....

NGINX到反向代理的WebSockets和启用SSL(WSS://)?

同时,在这里的原回购该模块是由模块作者更多的指令。

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

它基本上相当于增加的WebSocket服务器指令_ * _超时说明:

 server {

     ....

     websocket_connect_timeout ######;
     websocket_send_timeout #####;
     websocket_read_timeout #####;

     ....

         }


文章来源: Nginx TCP (WebSockets) Timeout / Keepalive Config