nginx + tomcat 集群+ redis 负载均衡 session共享配置

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问题,记录备忘。

猜你喜欢

转载自blog.csdn.net/u013558123/article/details/89216707