1、配置两个tomcat服务器的server.xml,分别使用不同的端口,每个服务器修改三处,代码如下:
<Server port="8006" shutdown="SHUTDOWN">
<Connector port="8086" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8643" />
<Connector port="8609" protocol="AJP/1.3" redirectPort="8643" />
2、配置nginx服务器的nginx.conf配置文件,代码如下:
upstream localhost {
server localhost:8080 weight=1;
server localhost:8086 weight=2;
}
server {
listen 8081;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
proxy_pass http://localhost;
index index.html index.htm;
proxy_connect_timeout 1;
proxy_send_timeout 30;
proxy_read_timeout 60;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
3、写个简单的jsp页面打印出sessionId,简单测试下,就会发现已经实现负载均衡,但是session共享还需要另外配置
4、把以下三个jar包放到每个tomcat服务器lib目录里面,jar名称如下:
tomcat-redis-session-manager-1.2-tomcat-7.jar
jedis-2.2.0.jar
commons-pool-1.6.jar
5、分别在每个tomcat 配置文件 context.xml 里面加上如下两句,host换成你自己的redis地址
<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve"/>
<Manager className="com.radiadesign.catalina.session.RedisSessionManager" database="0" host="192.168.0.117" maxInactiveInterval="60" port="6379"/>
6、先启动redis,再分别启动tomcat,最后启动nginx,整个配置完成,
最后,需要特别注意的地方是tomcat-redis-session-manager和其他jar包版本兼容问题,还有就是第五步里面className问题,记录备忘。