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

作者 : 开心源码 本文共881个字,预计阅读时间需要3分钟 发布时间: 2022-05-11 共66人阅读

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

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

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

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

处理方案一

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

1. proxy_connect_timeout;

2. proxy_read_timeout;

3. proxy_send_timeout;

处理方案二

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

备注:配置的位置为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的配置,与此篇博客无关 } }}123456789101112131415

关于配置2的解释

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

举例:

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

个人观点,仅供参考

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

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Nginx代理商webSocket经常中断的处理方案,如何保持长连接

发表回复