Nginx-tomcat-redis------负载均衡以及session共享
测试环境
Nginx 1.10.1
tomcat 7.0.70
Redis-x64-3.2.100
说明 tomcat 8 和 redis 实现session共享 有问题。
寻找源码 发现tomcat8 中的 catalina.jar 已经没有了 org.apache.catalina.util.LifecycleSupport 这个类。
然而这个类在redis的启动中需要加载,所以就一直报错 java.lang.NoClassDefFoundError: org/apache/catalina/util/LifecycleSupport
lz 很无奈,只好只用了tomcat7 版本,
这是redis 的官方说明 https://github.com/jcoleman/tomcat-redis-session-manager

好了 进入正题
第一步 安装 在windows 下安装 redis
参考 : http://blog.csdn.net/renfufei/article/details/38474435
下载地址 :https://github.com/MSOpenTech/redis
下载或解压即可 启动命令: redis-server redis.windows.conf

第二步,配置nginx 负载均衡 配置文件位置(D:\nginx-1.10.1\nginx-1.10.1\conf)
http {
...
#tomcat负载均衡
upstream mytomcats{
server 127.0.0.1:;
server 127.0.0.1:;
}
...
server {
...
listen ;
server_name localhost;
location / {
proxy_pass http://mytomcats;
}
...
}
之后启动

第三步 配置 集群tomcat
准备两份tomcat

分别修改tomcat的端口号 一个为默认的8080 另外一个修改为9090
(D:\apache-tomcat-7.0.70-windows-x64\apache-tomcat-7.0.70-8080\conf\server.xml)
<Server port="9005" shutdown="SHUTDOWN">
<Connector port="9090" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="9009" protocol="AJP/1.3" redirectPort="8443" />
分别在两个tomcat中的context.xml 中的 context段中添加一下内容
(D:\apache-tomcat-7.0.70-windows-x64\apache-tomcat-7.0.70-8080\conf\context.xml)
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="localhost"
port=""
database=""
maxInactiveInterval="" />
最后分别在tomcat的lib文件下添加 redis 的相关依赖jar commons-pool-1.5.4.jar jedis-2.6.2.jar tomcat-redis-session-manager1.2.jar
tomcat 中项目zzxt 中的首页index.jsp 内容如下
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%=session.getId()%><br>
<%
String msg = (String) session.getAttribute("msg");
if (null == msg) {
session.setAttribute("msg", "Hello!");
} else {
session.setAttribute("msg", msg + 0);
}
%>
<%=session.getAttribute("msg")%>
</body>
</html>
分别启动tomcat 成功

测试结果:
成功,请求分别进入到两个tomcat中 进行轮训处理

Nginx-tomcat-redis------负载均衡以及session共享的更多相关文章
- nginx+tomcat+redis负载均衡及session共享
概述 本文档是用来详细描述 nginx+tomcat+redis负载均衡实现session共享 所需软件及下载地址 软件名称 下载地址 功能说明 Nginx-v1.6.0 http://nginx.o ...
- nginx之 nginx + tomcat + redis 负载均衡且session一致性
说明: 本文描述的是 nginx + tomcat + redis 实现应用负载均衡且满足session一致性,从安装到配置的全部过程,供大家学习!nginx 代理服务器ip: 10.219.24.2 ...
- Nginx+Tomcat+memcached负载均衡实现session共享
http://blog.csdn.net/love_ubuntu/article/details/8464983 1. 安装各个软件不用说了. 2. 到tomcat的安装目录lib中,加入: me ...
- nginx+tomcat实现负载均衡以及session共享(linux centos7环境)
一.nginx的安装 1.准备三份tomcat tomcat1 设置端口 8080 tomcat2 设置端口 8081 tomcat3 设置端口 8082 2. 下载nginx 3. 解压到/home ...
- Nginx+Tomcat+Memcached负载均衡和session共享
1. 演示搭建 说明:本文参考网络日志http://blog.csdn.net/remote_roamer/article/details/51133790,结合实际操作,仅做个演示记录. 1.1. ...
- haproxy+tomcat实现负载均衡以及session共享(linux centos7环境)
一.安装HAProxy 1.进入home目录,下载最新haproxy安装包. cd /home wget http://haproxy.1wt.eu/download/1.4/src/haproxy- ...
- nginx+tomcat+redis的集群+session共享
nginx+tomcat+redis的集群+session共享 环境准备 1.tomcat版本:tomcat7 tomcat下载及安装,目前很多好的资源和步骤,此处省略. 2.jdk版本:jdk1.7 ...
- keepalived+nginx+tomcat+redis实现负载均衡和session共享(原创)
keepalived+nginx+tomcat+redis实现负载均衡和session共享 直接上链接,码了一天,就不再重写了,希望能帮到大家,有问题欢迎留言交流.
- Nginx+Tomcat+Memcache实现负载均衡及Session共享
第一部分 环境介绍 部署环境: Host1:Nginx.Memcached.Tomcat1 Host2:Tomcat2 Tomcat_version:8.0.38 第二部分 Nginx+Tomcat实 ...
- Nginx+Tomcat8+Memcached实现负载均衡及session共享
1> 基础环境 简易拓扑图: 2> 部署Tomcat [root@node01 ~]# ll -h ~ |egrep 'jdk|tomcat'-rw-r--r-- 1 root root ...
随机推荐
- 【BZOJ-4518】征途 DP + 斜率优化
4518: [Sdoi2016]征途 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 230 Solved: 156[Submit][Status][ ...
- .net社区
英文社区: 名称:MSDN 地址:http://msdn.microsoft.com/zh-cn/default.aspx 描述:这个网站是大家学.Net的初始网站,也是.net方面官方和权威的资料, ...
- Codeforces Round #389 Div.2 E. Santa Claus and Tangerines
time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...
- 数据结构算法C语言实现(一)---2.2线性表的顺序表示和实现
注意: 虽然是用C语言实现,但是考虑到使用了一个C++的特性----引用以简化代码,所以所有的代码均以cpp作为后缀,用g++编译(以后不做说明). g++版本: 一.简述 本节主要讲述线性表的顺序实 ...
- 单向关系中的JoinColumn
1.person与address的一对一单向关系: 在address中没有特殊的注解. 在Person中对应到数据库里面就有一个指向Address的外键. 我们也可以增加注释指定外键的列的名字,如下: ...
- soapUI测试webservice(参数为xml格式的处理方式)
如果传递的是xml,要用<![CDATA[ ]]>将xml注释为字符串 示例 <?xml version="1.0" encoding="UTF-8 ...
- 【Beta】团队协作模式探讨试行
概述 鉴于Alpha阶段松散的结构和低下的效率,以及Scrum会议时间过长.文档不到位.无标准化验收等问题,尝试对协作模式作一点变化. 依照课程压力等实际情况,以及按照贡献分分配原则,以一周为贡献分计 ...
- 设计模式-14 MVC模式
一 MVC设计模式 MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式,它是一个存在于服务器 表达层的模型,它将应用分开,改变应用之间的高度耦合 MVC设计模式将 ...
- javascript之标识(zhi)符、关键字与保留字
正确区分标识(zhi)符.关键字与保留字 我发现很多初学者往往弄不清楚这三者的区别,甚至会把标识符的“识(zhi)”读作识(shi),真是愧对小学的语文老师啊!!! 注意:在JavaScript中,所 ...
- 用GDB调试程序(一)
http://blog.csdn.net/haoel/article/details/2879 用GDB调试程序 GDB概述———— GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.或 ...