文章

保持长链接

保持长链接

webSocket

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 1.webSocket如何保持长连接? 
# 指定服务配置添加

    location / {
        root   html;
        index  index.html index.htm;
        proxy_pass http://scoket;
        proxy_http_version 1.1;
        
        # 保持长连接,配置以下三点: 保持12h
        proxy_connect_timeout 43200s;
        proxy_read_timeout 43200s;
        proxy_send_timeout 43200s;
        
        # 这是webSocket的配置
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }

流模式(代理)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
stream {
    log_format proxy log_format proxy '$remote_addr [$time_local] '
                     '$protocol $status $bytes_sent $bytes_received '
                     '$session_time $upstream_addr '
                     '$upstream_bytes_sent $upstream_bytes_received $upstream_connect_time $remote_addr:$server_port';
    #access_log /usr/local/tengine/logs/proxy/proxy-slb.access.log proxy;
    #error_log  /usr/local/tengine/logs/proxy/proxy-slb.error.log;
    #client_header_buffer_size 4k;
    include tcp/*.stream;
}
upstream proxy-slb {
    server     127.0.0.1:40011 weight=2  max_fails=3;
    server     127.0.0.1:40004 weight=2  max_fails=3;
    server  172.16.0.123:40002 weight=3  max_fails=3;
    #check interval=3000 rise=2 fall=5 timeout=15000 default_down=false type=tcp;
    #check interval=10 rise=2 fall=5 timeout=15;
    #server  172.16.0.123:40003 weight=2 fail_timeout=30s max_fails=3;
    #server     127.0.0.1:40001 weight=2 fail_timeout=15s max_fails=3;
    #server  172.16.0.123:40002 weight=1 fail_timeout=15s max_fails=3;
}
server {
    listen 40010 so_keepalive=on;
    proxy_timeout 3000s;
    proxy_connect_timeout 3000s;
    proxy_pass proxy-slb;
    tcp_nodelay on;
    access_log /usr/local/tengine/logs/proxy/proxy-slb.access.log proxy;
    error_log  /usr/local/tengine/logs/proxy/proxy-slb.error.log;
}
本文由作者按照 CC BY 4.0 进行授权