成航先森 成航先森

成都航院计算机系一个学生的个人博客

 

系统运维

  • 没有分类目录

最新文章

系统运维
当前位置: 首页 » 系统运维 » keepalived+lvs+nginx+tomcat轮询模式刷新很久才切换realserver

keepalived+lvs+nginx+tomcat轮询模式刷新很久才切换realserver

编辑:狂族晨曦 来源:系统运维经验杂笔 日期:2016-09-08 阅读: 7,068 次 9 条评论 » 百度已收录

最后更新时间:2022-04-02

先森刚接触运维,当然要学习部署各种集群环境,从最开始的LVS+nginx搭建,到现在Keepalived+lvs+nginx+tomcat搭建,集群的搭建也开始慢慢的得心应手了。不过,前进的道路上总是荆棘遍布。

先森的LVS用的是DR模式下的RR轮询算法,这个算法会实现的效果是每个访问会轮流分布到后端服务器1、2、3..上面去,后端服务器相当于在和访问打车轮战。

keepalived+lvs+nginx+tomcat拓扑图 -1

keepalived+lvs+nginx+tomcat拓扑图

然而,先森环境部署好之后,要刷新很久之后,才换切换到另一个后端服务器,虽然这也是一定意义上的达到了目标,但心中总还是有个疙瘩。

那么为什么会出现这样的问题呢?

影响因素

经过先森的测试,影响刷新轮询的配置keepalived、Nginx、Tomcat分别有一个,也就是一共有三个配置会影响到。

keepalived配置

首先,在keepalived的配置文件中,存在一个会话保持时间的配置。

vim /etc/keepalived/keepalived.conf
persistence_timeout 50    #50秒为默认值

会话保持时间 -2

会话保持时间

这里有个默认为50秒的会话保持时间。如果设置了这一项,那么久会等待50秒后才会切换realserver。

如果上面的这样配置已经删除或注释,但问题依旧存在,那么一定就是Nginx和Tomcat的配置问题了。

Nginx配置

编辑打开到nginx的配置文件:

vim /usr/local/nginx/conf/nginx.conf

在http模块下面就存在影响刷新轮询的配置:

Nginx的配置 -3

Nginx的配置

在nginx.conf中,有一项配置:

keepalive_timeout  65;

这是nginx默认的连接超时时间,默认为65秒。将数字改为0即可。或者把上图中65那行注释,0那行取消注释就好。

Tomcat配置

同样的,在Tomcat中也有相关配置。同样编辑打开Tomcat的配置文件:

vim /web/soft/tomcat/conf/server.xml

找到设置Http访问端口那一段:

Tomcat的配置 -4

Tomcat的配置

在server.xml中,设置外部访问端口那一段,有个connectionTimeout的设置,即连接超时时间:

connectionTimeout="20000"

这个值默认是2000毫秒,将其改为10毫秒左右即可。不可以改为0,设置为0表示永不超时。

警告

总体来说,上面的三个配置都是修改的会话保持时间。但是会话保持时间是不能随意修改的。

什么是会话保持呢?

会话保持是指在负载均衡器上有一种机制,在作负载均衡的同时,还保证同一用户相关连的访问请求会被分配到同一台服务器上。

会话保持有什么作用呢?

举例说明一下如果有一个用户访问请求被分配到服务器A,并且在服务器A登录了,并且在很短的时间,这个用户又发出了一个请求,如果没有会话保持功能的话,这个用户的请求很有可能会被分配到服务器B去,这个时候在服务器B上是没有登录的,所以你要重新登录,但是用户并不知道自己的请求被分配到了哪里,用户的感觉就是登录了,怎么又要登录,用户体验很不好。

所以,切记的是,修改上面的三项会话保持时长的配置仅仅只是用于环境测试,如果在生产环境,一定要按照需求设置。

历史上的今天:

标签:
除特别注明外,本站所有文章均为成航先森 www.capjsj.cn 原创,本文共1352个字
转载请注明出处来自https://www.capjsj.cn/keepalived_lvs_nginx_tomcat.html
已有 9 位"计工"发布了激烈的评论,还有N多人围观笑而不语评论
的头像
欢迎发表评论
取消评论

表情
疑问调皮伤心抠鼻黑线微笑可爱奸笑震惊吓到了撇嘴大兵忍不住笑笑狂骂狂怒噢?鼓掌酷⊙﹏⊙b汗鄙视大哭嘿嘿

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. 的头像

    问下楼主 评论插件叫什么

    2016-09-08 11:37 回复
  2. 的头像

    技术活。

    2016-09-09 16:16 回复
  3. 的头像

    好深奥,博主邦邦哒,一定很多学妹追求!

    2016-09-09 19:00 回复
  4. 的头像

    送几个66666666666666666666666

    2016-09-09 19:25 回复
  5. 的头像

    好复杂的集群

    2016-09-10 19:38 回复
  6. 看起来好难啊

    2016-09-13 19:13 回复
  7. 的头像
    夏天的夏:

    我记得tomcat里面keepalive_timeout参数才是决定轮询建立新请求的间隔的,timeout只是决定同一请求在多久后断开连接。这个和apache相类似。

    2020-07-07 17:30 回复
官方微信
发表评论 返回顶部