关闭

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

标签: websocketnginxjava
5163人阅读 评论(0) 收藏 举报
分类:

背景

这天气够热的,要处理的事情也够多的。。。。

想看解决的,直接 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分钟内有做心跳的话,是可以保持连接不中断的,详细看个人需求

个人观点,仅供参考

关于nginx相关配置的解释,可以看一下这个

地址:http://blog.csdn.net/liujiyong7/article/details/18228915

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Nginx下的反向代理实践(解决了资源映射问题和websocket问题)。

最近,实验室主站要加很多功能,这时候就需要搞反向代理了。在千辛万苦的解决了apache反向代理的一些资源问题和websocket问题后。想试试ngnix会不会也有同样的问题,经过测试,发现nginx更...
  • talentxiet
  • talentxiet
  • 2016-09-19 09:29
  • 1894

nginx 作反向代理时的超时问题

nginx常用的超时配置说明 client_header_timeout 语法 client_header_timeout time 默认值 60s 上下文 http server...
  • u013378306
  • u013378306
  • 2017-05-05 08:54
  • 3794

前端跨域,nginx反向代理的解决方案

前端跨域,nginx反向代理的解决方案现在越来越多的公司开始使用前后端分离的技术,而盲目的分离是不理智的,跨域也是第一难题。我的第一份工作就是公司第一个以前端开发者的身份入职,此时公司所有的项目都已正...
  • qq_19686725
  • qq_19686725
  • 2017-11-28 12:31
  • 143

跨域问题,解决方案 - Nginx反向代理

原文地址:跨域问题,解决方案 - Nginx反向代理 博客地址:http://blog.720ui.com/ 跨域问题,解决之道 链接文章:跨域问题,解决之道 解决思路 跨域问题,是由于JavaSc...
  • helloxiaoliang
  • helloxiaoliang
  • 2016-12-13 12:56
  • 1837

Nginx下的反向代理实践(解决了资源映射问题和websocket问题)。

最近,实验室主站要加很多功能,这时候就需要搞反向代理了。在千辛万苦的解决了apache反向代理的一些资源问题和websocket问题后。想试试ngnix会不会也有同样的问题,经过测试,发现nginx更...
  • talentxiet
  • talentxiet
  • 2016-09-19 09:29
  • 1894

PHP没有数据库连接池怎么破?PHP环境下使用Nginx ngx_http_limit_req_module模块的高负载解决方案

线上运行了一套辅助系统是利用了开源的PHP改的,之前也没怎么玩过PHP,没想到这玩意儿还是有不少坑的。突然某一天一个用户做线上活动推广,然后短时间内涌进来了上万的请求,然后数据库连接耗尽,短时间内几乎...
  • shootyou
  • shootyou
  • 2015-07-09 10:56
  • 3659

3p0连接mysql经常断开连接解决方案

c3p0连接mysql 数据库(解决掉线问题) 2009-06-05 17:47最近项目用到了hibernate3.0 c3po mysql的数据层组合,开发部署非常顺利,但每天早上访问应用...
  • lncdzh
  • lncdzh
  • 2017-12-05 18:06
  • 27

yum安装 LVS(DR)+keepalived+netty4 实现websocket(网页群聊) 高可用解决方案(一)

yum安装 LVS(DR)+keepalived+netty4 实现websocket 。使用LVS(DR)做网络四层负载均衡,实现websocket的网页版在线群聊系统
  • m890701
  • m890701
  • 2016-02-24 10:57
  • 1579

websocket断开重连解决方案,基于子慕大诗人博客修改 健壮强化版

欢迎大家来到Altaba的博客  2017年11月27日 相信随着H5的演进,我们越来越多接触到websocket的使用,本身就使用此技术并不难,但是在开发中会遇到各种无法预测的原因,有浏览器兼容问...
  • Altaba
  • Altaba
  • 2017-11-27 14:43
  • 79

代理服务器设置及解决方案

  • 2014-09-17 10:35
  • 802KB
  • 下载
    个人资料
    • 访问:7241次
    • 积分:152
    • 等级:
    • 排名:千里之外
    • 原创:8篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档