Nginx代理webSocket经常中断的解决方案, 如何保持长连接
为什么80%的码农都做不了架构师?>>>
背景
这天气够热的,要处理的事情也够多的。。。。
想看解决的,直接 ctrl+f搜索关键字‘配置点’##
开始前交代(想看原因的看这个,个人观点,不代表正确)##
解说:今天用nginx反代通讯项目,发现平均1分钟左右,就会出现webSocket连接中断,然后查看了一下,是nginx出现的问题。
原因是:nginx等待你 第一次通讯和第二次通讯的时间差,超过了它设定的最大等待时间,简单来说就是,超时,所以就啪的一声断了,开始上解决步骤。
解决方案一
其实只要配置nginx.conf的对应localhost里面的这几个参数就好
- proxy_connect_timeout;
- proxy_read_timeout;
- 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; #配置点1proxy_read_timeout 60s; #配置点2,如果没效,可以考虑这个时间配置长一点proxy_send_timeout 12s; #配置点3proxy_set_header Upgrade $http_upgrade; #这是webSocket的配置,与此篇博客无关proxy_set_header Connection "Upgrade"; #这是webSocket的配置,与此篇博客无关}}
}
关于配置2的解释
备注:这个是服务器对你等待最大的时间,也就是说,当你webSocket使用nginx转发的时候,用上面的配置2来说,如果60秒内没有通讯,依然是会断开的,所以,你可以按照你的需求来设定
举例: 比如说,我设置了10分钟,那么如果我10分钟内有通讯,或者10分钟内有做心跳的话,是可以保持连接不中断的,详细看个人需求 感谢评论区 @zigzagroad 的指正,希望可以帮到你们,如果有更好的方式,麻烦分享一下,谢谢
关于nginx相关配置的解释,可以看一下这个
地址:http://blog.csdn.net/liujiyong7/article/details/18228915
转载于:https://my.oschina.net/grkj/blog/1499744
Nginx代理webSocket经常中断的解决方案, 如何保持长连接相关推荐
- Nginx代理webSocket时60s自动断开, 怎么保持长连接
利用nginx代理websocket的时候,发现客户端和服务器握手成功后,如果在60s时间内没有数据交互,连接就会自动断开,如下图: 为了保持长连接,可以采取来两种方式. 1.nginx.conf 文 ...
- Nginx代理WebSocket方法
微信公众号:运维开发故事,作者:姜总 大家好,我是小姜. 前一篇文章讲了一下什么是WebSocket协议,这里在回顾一下,并且聊一聊如何用nginx来代理WebSocket. WebSocket是HT ...
- Netty 通过 WebSocket 编程实现服务器和客户端全双工长连接<2021SC@SDUSC>
2021SC@SDUSC Netty 通过 WebSocket 编程实现服务器和客户端全双工长连接 实例要求: Http 协议是无状态的, 浏览器和服务器间的请求响应一次,下一次会重新创建连接. 要求 ...
- nginx代理WebSocket配置
代理WebSocket的示例配置 # /etc/nginx/conf.d/proxy-http.conf server {listen 8080;server_name api.mydomain.co ...
- Nginx代理websocket
nginx.conf配置 server {listen 8090; server_name localhost;add_header Access-Control-Allow-Origin *;add ...
- Nginx 代理 WebSocket
2019独角兽企业重金招聘Python工程师标准>>> WebSocket连接异常:Error during WebSocket handshake: Unexpected resp ...
- Nginx支持WebSocket反向代理-学习小结
WebSocket是目前比较成熟的技术了,WebSocket协议为创建客户端和服务器端需要实时双向通讯的webapp提供了一个选择.其为HTML5的一部分,WebSocket相较于原来开发这类app的 ...
- 使用Nginx代理和转发Websocket连接
1.Websocket 简介 WebSocket协议是基于TCP的一种新的网络协议.它实现了浏览器与服务器全双工(full-duplex)通信--允许服务器主动发送信息给客户端. 2.Nginx 简介 ...
- http响应最大时长 nginx_nginx反向代理时如何保持长连接
·[场景描述] HTTP1.1之后,HTTP协议支持持久连接,也就是长连接,优点在于在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟. 如果我们使用了nginx去作为 ...
最新文章
- java 时间加减_Java中时间加减的比较
- 华为的鸿蒙系统可以装在电脑上吗_继鸿蒙系统后!华为首款台式机电脑上线:联想PC霸主地位危险了...
- 总结调试过程中怎么去抓log
- 简述计算机图形的图形应用主要有哪些,5计算机图形学考试简答题复习.doc
- 软考系统架构师笔记-最后知识点总结(三)
- 荣耀50系列外观配置抢先看:售价成唯一悬念
- postgresql 集合类型_PostgreSQL数据类型-时间数据类型
- Servlet期末复习笔记
- git 怎么还原历史版本_git 还原到服务器版本
- 如果计算机正执行屏幕保护程序 当用户,计算机一级考试参考试题(含答案)讲节一.doc...
- 微信小程序icon控件
- 西游释厄传 所有物品代码
- SOLD格雷母线定位系统产品说明
- php调用pdf虚拟打印机,window_在Win7系统中怎么安装PDF彩色虚拟打印机?,前面说过,Word不能直接将文档 - phpStudy...
- 免费多功能转码机器人(小程序转码机器人)
- win7系统mscomctl.ocx不能注册
- ESP32 Wi-Fi讲解,station连接热点案例
- 基于Arduino的烟雾传感实验
- 再谈IE6之Fixed定位
- 一些数据恢复软件——介绍