文档章节

nginx+tomcat:负载均衡配置(使用粘性session)

yovinn
 yovinn
发布于 2015/12/31 16:02
字数 504
阅读 6.8K
收藏 28

「深度学习福利」大神带你进阶工程师,立即查看>>>

(1)举个简单的例子,以tomcat为例,我们都知道session存在于服务器端,对于不是分布式部署,整个系统的session都会是这唯一的服务器来管理。这点   没问题。但是对于分布式部署来说,假设有tomcatA与tomcatB,但用户user访问系统时,通过负载均衡,此user访问了位于tomcatA上的应用。系统给此用户分配了一个session来标识用户身份,并返回sessionID给浏览器。这时user又向服务器发送个请求。假设这时候负载均衡到了tomcatB,但是此时tomcatB上并没有存有user相应的session信息。根据一般应用的设置,会提示user重新登录,试想下user就这样一直登录,一直被提示未登录,这样肯定行不通。这就是session保持的问题。

      解决session保持有几种方法,例如nginx自带的ip_hash模块,session复制,以及使用类似redis这种缓存数据库来实现对session的统一管理。在这里介绍的是粘性session;

      

     (2) 粘性session的概念:

                  用户在持续访问系统时,根据粘性session,仍会被分配到上一次访问的服务器中。

     (3)粘性session的配置:

                  1.给nginx添加 nginx_upstream_jvm_route 模块

                        下载: http://down.51cto.com/data/910451

                         安装 : 解压后,首先执行patch -p0 < /nginx_upstream_jvm_route/jvm_route.patch 补丁文件

                                     然后在./configure nginx时,–add-module=/nginx_upstream_jvm_route

                 2.配置nginx.conf

                     

         server 192.168.10.63:8081 srun_id=tomcat0;

            server 192.168.10.63:8088 srun_id=tomcat1;

            jvm_route $cookie_JSESSIONID|sessionid reverse; 

          

                3.配置tomcat

                   在<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat0">处,添加 jvmRoute="tomcat0";


                   注:此处的jvmRoute的值应同nginx.conf中的srun_id的值 相对应。

                 4.重新启动nginx与tomcat,配置完成

  (4)负载均衡优化配置

                

server 192.168.10.63:8081 srun_id=tomcat0 max_fails=3 fail_timeout=60s
            
            
            上面max_fails=3 fail_timeout=15s两个参数代表在15s,若有3次失败连接,则在下个15s内不再访问该服务器。


yovinn
粉丝 1
博文 4
码字总数 2159
作品 0
海淀
程序员
私信 提问
加载中
此博客有 1 条评论,请先登录后再查看。
记一次失败的Perl + Nginx + FastCGI 配置过程

这两天心血来潮,不知道为什么和 Perl + Nginx + FastCGI 配置 耗上了。但是失败了,记录如下: 1)安装Nginx 1.4.3 ,我的是WINDOWS 7 系统,修改配置文件如下: location ~ .(pl|cgi|perl)?...

通吃岛-低手哥
2013/10/27
1.8K
7
访问安全控制解决方案

本文是《轻量级 Java Web 框架架构设计》的系列博文。 今天想和大家简单的分享一下,在 Smart 中是如何做到访问安全控制的。也就是说,当没有登录或 Session 过期时所做的操作,会自动退回到...

黄勇
2013/11/03
3.6K
8
CDH5: 使用parcels配置lzo

一、Parcel 部署步骤 1 下载: 首先需要下载 Parcel。下载完成后,Parcel 将驻留在 Cloudera Manager 主机的本地目录中。 2 分配: Parcel 下载后,将分配到群集中的所有主机上并解压缩。 3 激...

cloud-coder
2014/07/01
6.9K
1
树莓派(Raspberry Pi):完美的家用服务器

自从树莓派发布后,所有在互联网上的网站为此激动人心的设备提供了很多有趣和具有挑战性的使用方法。虽然这些想法都很棒,但树莓派( RPi )最明显却又是最不吸引人的用处是:创建你的完美家用...

异次元
2013/11/09
7.7K
8
密码管理程序--pwgrep

为了管理我的密码,我写了一个小的 bash/awk 脚本用来管理一个密码数据库并使用 GnuPG 进行加密。使用 pwgrep 的好处是: 密码加密 密码版本化,不用担心丢失老密码 Since a versioning sys...

匿名
2013/03/11
1.3K
0

没有更多内容

加载失败,请刷新页面

加载更多

Subversion存储库中“分支”,“标记”和“主干”的含义是什么?

问题: I've seen these words a lot around Subversion (and I guess general repository) discussions. 我已经在Subversion(我猜通用存储库)讨论中看到了很多这样的话。 I have been us......

富含淀粉
今天
5
0
《Java8实战》笔记(03):Lambda表达式

本文源码 Lambda 管中窥豹 可以把Lambda表达式理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。 Lambda表达...

巨輪
今天
7
0
从其他文件夹导入文件 - Importing files from different folder

问题: I have the following folder structure. 我有以下文件夹结构。 application/app/folder/file.py and I want to import some functions from file.py in another Python file which r......

javail
今天
22
0
大数据研发学习之路--Hadoop集群搭建

阅读编译文档 准备一个hadoop源码包,我选择的hadoop版本是:hadoop-2.7.7-src.tar.gz,在hadoop-2.7.7的源码 包的根目录下有一个文档叫做BUILDING.txt,这其中说明了编译hadoop所需要的一些...

DSJ-shitou
今天
8
0
OSChina 周五乱弹 —— 特么是别的公司派来的特洛伊木马吧?

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 小小编辑推荐:《我会守在这里》- 毛不易 《我会守在这里》- 毛不易 手机党少年们想听歌,请使劲儿戳(这里) @FalconChen :股市连跪了五天,...

小小编辑
今天
77
2

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部