当前位置:   article > 正文

修改nginx 配置支持websocket 协议转发、支持长连接不中断_nginx 设置转发ws 不断开

nginx 设置转发ws 不断开

转载请标明出处:
http://blog.csdn.net/qq_27818541/article/details/111214797
本文出自:【BigManing的博客】

一、ngixn配置 支持websocket

server {
    listen 80;
    listen 443;
    
    ssl on;
    # 证书位置
    ssl_certificate /etc/nginx/www.bigmaning.crt;
	# 密钥位置    
    ssl_certificate_key /etc/nginx/private.key;
    ssl_session_timeout 5m;
    ssl_session_cache shared:SSL:50m;
    ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
	
    #wss协议转发
    location /wss {
        proxy_pass http://127.0.0.1:3377;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        # proxy_connect_timeout 4s;               
        proxy_read_timeout 600s;  # 设置10分钟                 
        # proxy_send_timeout 12s;               
    }   
    ...
    }
}

  • 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

二、FAQ

1、链接成功示意图

UpgradeConnection头用于将连接从HTTP升级到WebSocket .

成功连接后的 效果如下:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

2、保持websocket长连接解决方案

默认情况下 nginx会在60s后关闭websocket链接,是由这个参数【proxy_read_timeout】决定的 。

方案 :所以nginx端 可以把这个值设置长一点,同时前端配合心跳测试,重新刷新超时时间,进而延迟nginx关闭websocket

proxy_read_timeout 600s;  # 设置10分钟   
  • 1

3、三个timeout含义

proxy_read_timeout

连接成功后_等候后端服务器响应时间_其实已经进入后端的排队之中等候处理(也可以说是后端服务器处理请求的时间),默认60秒

proxy_connect_timeout

后端服务器连接的超时时间_发起握手等候响应超时时间;

proxy_send_timeout

后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所有的数据;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/733252
推荐阅读
相关标签
  

闽ICP备14008679号