tomcat8用redis实现session共享及Nginx配置Tomcat

注:${catalina.base} 表示 tomcat根目录

1、将 redisson.conf 拷贝到 ${catalina.base},修改redis配置(url、密码)

2、将redisson.yaml 拷贝到 ${catalina.base}config,修改redis配置(url、密码)

3、将redisson-all-3.11.2.jar和redisson-tomcat-8-3.11.2.jar 拷贝到${catalina.base}lib下

4、在原有tomcatcontext.xml下 添加 以下代码

<Manager className="org.redisson.tomcat.RedissonSessionManager"
  configPath="${catalina.base}/redisson.conf" 
  readMode="REDIS" updateMode="DEFAULT" broadcastSessionEvents="false"/>
  <ResourceLink name="bean/redisson"
                  global="bean/redisson"
		  type="org.redisson.api.RedissonClient" />
    <Manager className="org.redisson.tomcat.JndiRedissonSessionManager"
         readMode="REDIS"
         jndiName="bean/redisson" />

5、在原有tomcatconfigserver.xml 添加以下代码(参考) 注:UserDatabase 为原有存在的.

<GlobalNamingResources>
    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users
    -->
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />

    <Resource name="bean/redisson"
        auth="Container"
              factory="org.redisson.JndiRedissonFactory"
              configPath="${catalina.base}/conf/redisson.yaml"
        closeMethod="shutdown"/>
  </GlobalNamingResources>

二、Tomcat 配置 Nginx

1、修改tomcat的server.xml文件 两处如下:(proxyPort为Nginx配置文件设置,需要访问的端口

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" proxyPort="6001"/>



<!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="6001" />

三、Nginx配置总结

1、Nginx配置文件 nginx.conf

#服务器集群,可以增加多个
    upstream tomcat1 {
        server 127.0.0.1:8090;
        server 127.0.0.1:8070;
    }

server {
        listen       6001;
        server_name  127.0.0.1;      

        #这个是匹配你访问的某个项目 
        location /app/ {
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
                proxy_set_header X-Forwarded-Proto https;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_redirect off;
                proxy_connect_timeout      240;
                proxy_send_timeout         240;
                proxy_read_timeout         240;
                # note, there is not SSL here! plain HTTP is used
                proxy_pass http://tomcat1/;  #修改配置,与上面tomcat1一致;绝对路径,则访问的时候,不会包括到 app,直接用目标的处理
        }
        #如果目标资源中 存在绝对路径的静态资源或请求资源 如:a="/abc.jpg",则需要单独映射,不然 会导致404 访问不到资源(代理服务器本来就没有)
        location /manager/{
                proxy_pass http://tomcat1/manager/;
        }
        location /host-manager/{
                proxy_pass http://tomcat1/host-manager/;
        }
    }

四、windows下nginx和redis及tomcat8安装(包括了集成)下载

tomcat8集成redis实现session共享 资源下载地址:

经验分享 程序员 微信小程序 职场和发展