原文地址:http://www.cnblogs.com/lengfo/p/4260363.html
1、从 github 获取 tomcat-redis-session-manager-master 源码,地址如下:https://github.com/jcoleman/tomcat-redis-session-manager
2、由于源码构建基于 gradle,请先配置 gradle 环境:配置gradle文档:https://gradle.org/install/#manually
3、找到源码中的build.gradle文件,修改该文件
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'signing'
group = 'com.orangefunction'
version = '2.0.0'
repositories {
mavenCentral()
}
compileJava {
sourceCompatibility = 1.7
targetCompatibility= 1.7
}
dependencies {
compilegroup: 'org.apache.tomcat', name: 'tomcat-catalina', version: '7.0.27'
compilegroup: 'redis.clients', name: 'jedis', version: '2.5.2'
compilegroup: 'org.apache.commons', name: 'commons-pool2', version: '2.2'
//compile group: 'commons-codec', name: 'commons-codec', version: '1.9'
testCompile group: 'junit', name: 'junit', version: '4.+'
testCompile 'org.hamcrest:hamcrest-core:1.3'
testCompile 'org.hamcrest:hamcrest-library:1.3'
testCompile 'org.mockito:mockito-all:1.9.5'
testCompile group: 'org.apache.tomcat', name: 'tomcat-coyote', version:'7.0.27'
}
task javadocJar(type: Jar, dependsOn: javadoc){
classifier = 'javadoc'
from'build/docs/javadoc'
}
task sourcesJar(type: Jar) {
fromsourceSets.main.allSource
classifier = 'sources'
}
artifacts {
archives jar
archives javadocJar
archives sourcesJar
}
//signing {
// signconfigurations.archives
//}
task copyJars(type: Copy) {
fromconfigurations.runtime
into'dist'
}
uploadArchives {
repositories {
mavenDeployer {
beforeDeployment { MavenDeployment deployment ->signing.signPom(deployment) }
//repository(url:"https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
// authentication(userName: sonatypeUsername,password: sonatypePassword)
//}
//repository(url:"https://oss.sonatype.org/content/repositories/snapshots") {
// authentication(userName:sonatypeUsername, password: sonatypePassword)
//}
pom.project {
name 'tomcat-redis-session-manager'
packaging 'jar'
description 'Tomcat Redis Session Manager is a Tomcat extension to storesessions in Redis'
url 'https://github.com/jcoleman/tomcat-redis-session-manager'
issueManagement {
url 'https://github.com:jcoleman/tomcat-redis-session-manager/issues'
system 'GitHub Issues'
}
scm {
url 'https://github.com:jcoleman/tomcat-redis-session-manager'
connection'scm:git:git://github.com/jcoleman/tomcat-redis-session-manager.git'
developerConnection'scm:git:git@github.com:jcoleman/tomcat-redis-session-manager.git'
}
licenses {
license {
name 'MIT'
url 'http://opensource.org/licenses/MIT'
distribution 'repo'
}
}
developers {
developer {
id 'jcoleman'
name 'James Coleman'
email 'jtc331@gmail.com'
url 'https://github.com/jcoleman'
}
}
}
}
}
}
4、执行gradle命令构建源码,编译输出tomcat-redis-session-manager-master 及依赖jar包
进入到下载的tomcat-redis-session-manager-master目录中即build.gradle文件所在目录中,执行如下命令生成相应的jar包,jar生成的地址分别为build目录以及dist目录下;
gradle build -x tomcat-redis-session-manager-master copyJars
将上面生成的全部jar包,覆盖到tomcat安装目录的lib目录中;
分别修改两台tomcat服务器下的context.xml配置文件,在配置文件中新增如下设置:
<Context>
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="192.168.44.101" <!--redis服务器地址和端口 -->
port="6379"
database="0"
maxInactiveInterval="60" />
</Context>
修改nginx.conf配置文件
upstream test{
server 127.0.0.1:8085;
server 127.0.0.1:8087;
}
server {
listen 80;
server_name www.test.com;
location / {
proxy_set_header Host $host;
proxy_pass_header User-Agent;
proxy_pass http://test;
index index.html index.htm;
}
}
tomcat7:
两台tomcat分别配置端口号为8085和8087,分别在E:\apache-tomcat7-07-8087\webapps\ROOT目录下新建一个index.jsp文件,文件中的主要内容如下:
<h3><%=session.getId() %></h3>
<br/>
<h4>8085</h4>
<h3><%=session.getId() %></h3>
<br/>
<h4>8087</h4>
分别启动两台tomcat服务器即可;