加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

注意这几点,轻轻松松配置 Nginx + Tomcat 的集群和负载均衡

发布时间:2019-06-04 18:33:59 所属栏目:外闻 来源:顿悟源码
导读:副标题#e# Tomcat 集群是当单台服务器达到性能瓶颈,通过横向扩展的方式提高整体系统性能的有效手段。Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,可以通过简单的配置实现 Tomcat 集群的负载均衡。 本文使用的 Tomcat 是 8.5.35 版本,Nginx 是 1.14

简单描述下工作原理:

  • nginx 将请求转发给 Tomcat1,请求登录认证,创建会话,生成 Cookie,在响应返回之前,将 Session 信息复制到 Tomcat2
  • 再次请求时,nginx 将带着会话 Cookie 的请求转发给了 Tomcat2,Tomcat2 发现内部 Session 池中有关联的已认证成功的 Session 对象,不再认证返回请求资源

4. 验证负载均衡和 Session 复制

4.1 测试环境

  • 使用两台 PC 部署 Tomcat,对应关系是:172.31.1.41-Tomcat1,172.31.1.42-Tomcat2
  • 部署基于使用 Tomcat 自带的 SessionExample 程序,编写了一个 tomcat-benchmark 的 web 应用
  • 结合 Tomcat 自带的 Manager 应用,查看已部署应用内部 Session 池

4.2 负载均衡

修改 tomcat-benchmark 部署描述符文件中的 context-param 为 "I'm Tomcat 1/2" 用于区分两个 Tomcat,启动 Nginx 和 Tomcat,在浏览器访问 172.31.1.42:8000 可以看到请求在两个服务器间切换:

注意这几点,轻轻松松配置 Nginx + Tomcat 的集群和负载均衡

4.3 Session 复制

为了方便理解,这里先把 Nginx 的负载均衡策略设置成 ip_hash:

  • 假设 Nginx 始终将请求定位到 Tomcat1 上,然后在 Tomcat1 上创建会话,往会话中添加一些属性
  • 关闭 Tomcat1 模拟故障,此时 Nginx 会带着之前的会话 Cookie 将请求转发到 Tomcat2,上
  • 查看 Tomcat2 上是否存在与 Cookie(JSESSIONID) 关联的 Session 信息,若有表示复制成功

整个过程如下:

注意这几点,轻轻松松配置 Nginx + Tomcat 的集群和负载均衡

正好与上述描述的相反,可以看到 Session 信息从 Tomcat2 复制到了 Tomcat1 中。

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读