Nginx代理webSocket经常中断的解决方案, 如何保持长连接

简介: Nginx代理webSocket经常中断的解决方案, 如何保持长连接   想看解决的,直接 ctrl+f搜索关键字‘配置点’ 开始前交代(想看原因的看这个,个人观点,不代表正确) 解说:今天用nginx反代通讯项目,发现平均1分钟左右,就会出现webSocket连接中断,然后查看了一下,是nginx出现的问题。

Nginx代理webSocket经常中断的解决方案, 如何保持长连接

 

想看解决的,直接 ctrl+f搜索关键字‘配置点’

开始前交代(想看原因的看这个,个人观点,不代表正确)

解说:今天用nginx反代通讯项目,发现平均1分钟左右,就会出现webSocket连接中断,然后查看了一下,是nginx出现的问题。

原因是: nginx等待你 第一次通讯和第二次通讯的时间差超过了它设定的最大等待时间,简单来说就是,超时,所以就啪的一声断了,开始上解决步骤。

解决方案一

 其实只要配置nginx.conf的对应localhost里面的这几个参数就好

1. proxy_connect_timeout;
2. proxy_read_timeout;
3. proxy_send_timeout;

解决方案二

发心跳包,原理就是在有效地再读时间内进行通讯,重新刷新再读时间

备注:配置的位置为localhost,给出简略地址

 http {
    server {
        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://webscoket; 
            proxy_http_version 1.1; 
            proxy_connect_timeout 4s; #配置点1
            proxy_read_timeout 60s; #配置点2,如果没效,可以考虑这个时间配置长一点
            proxy_send_timeout 12s; #配置点3
            proxy_set_header Upgrade $http_upgrade; #这是webSocket的配置,与此篇博客无关
            proxy_set_header Connection "Upgrade"; #这是webSocket的配置,与此篇博客无关
        }
    }
}

关于配置2的解释

备注:这个是服务器对你等待最大的时间,也就是说,当你webSocket使用nginx转发的时候,用上面的配置2来说,如果60秒内没有通讯,依然是会断开的,所以,你可以按照你的需求来设定

举例:
比如说,我设置了10分钟,那么如果我10分钟内有通讯,或者10分钟内有做心跳的话,是可以保持连接不中断的,详细看个人需求

原文地址http://www.bieryun.com/1765.html

相关文章
|
6月前
|
网络协议 应用服务中间件 nginx
nginx配置tcp协议代理的日志
nginx配置tcp协议代理的日志
145 0
|
5月前
|
缓存 JavaScript 应用服务中间件
Nginx+Tomcat代理环境下JS无法完全加载问题
Nginx+Tomcat代理环境下JS无法完全加载问题
|
27天前
|
数据可视化 应用服务中间件 网络安全
简单易用的Nginx代理管理工具:体验便捷配置、高效管理
Nginx Proxy Manager是一款强大的代理服务器管理工具,提供简单直观的界面来配置和管理Nginx代理服务器,帮助用户轻松提升配置的简洁性和便捷性。
45 0
简单易用的Nginx代理管理工具:体验便捷配置、高效管理
|
1月前
|
NoSQL 关系型数据库 MySQL
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
194 0
|
1月前
|
算法 应用服务中间件 网络安全
windows下采用 nginx配置websocket支持wss流程
windows下采用 nginx配置websocket支持wss流程
|
3月前
Nginx---代理遇到的坑
Nginx---代理遇到的坑
18 1
|
4月前
|
安全 JavaScript 应用服务中间件
Nginx 跨域解决方案
跨域资源共享(CORS) 是一种机制,它使用额外的 HTTP 头来告诉浏览器,它允许 Web 应用服务器进行跨域访问控制,从而使跨域数据传输得以安全进行。 跨域资源共享标准新增了一组 HTTP 首部字段,允许服务器声明哪些源站通过浏览器有权限访问哪些资源。另外,规范要求,对那些可能对服务器数据产生副作用的 HTTP 请求方法(特别是GET以外的 HTTP 请求
|
4月前
|
域名解析 网络协议 应用服务中间件
百度搜索:蓝易云【服务器配置到云上nginx代理?】
现在,您的云服务器已经配置为使用Nginx代理了。通过访问您的域名,请求将被转发到云服务器上的指定端口,并由Nginx进行代理。请确保在配置和使用过程中注意安全性和网络设置,并根据您的需求进行相应调整。
40 0
|
4月前
|
应用服务中间件 nginx Python
nginx代理目录
nginx代理目录
47 1
|
5月前
|
前端开发 JavaScript 应用服务中间件
nginx配置vue前端代理
nginx配置vue前端代理
72 0