nginx+Tomcat7+Redis实现session共享

1.nginx搭建

1.1下载

官网下载(http://nginx.org/en/download.html

1.2将文件上传到Linux系统

先解压缩

tar -zxvf nginx-1.14.0.tar.gz

然后安装环境

yum -y install gcc-c++ && yum -y install pcre pcre-devel && yum -y install zlib zlib-devel && yum -y install openssl openssl-devel

安装nginx

cd /home/nginx-1.14.0

./configure \

--prefix=/usr/local/nginx \

--pid-path=/var/run/nginx/nginx.pid \

--lock-path=/var/lock/nginx.lock \

--error-log-path=/var/log/nginx/error.log \

--http-log-path=/var/log/nginx/access.log \

--with-http_gzip_static_module \

--http-client-body-temp-path=/var/temp/nginx/client \ --http-proxy-temp-path=/var/temp/nginx/proxy \ --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \

--http-scgi-temp-path=/var/temp/nginx/scgi

 

mkdir /var/temp/nginx/client -p

 

make && make install

在nginx-1.14.0目录下创建Tomcat文件夹

在Tomcat文件夹下放入多个Tomcat服务器,修改其中的server.xml内容

vi server.xml

修改下面3个部分

<Server port="8006" shutdown="SHUTDOWN">

 

<Connector port="18081" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443"

                maxHttpHeaderSize="102400" maxPostSize="410000" />

 

<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />

修改port的值,保证端口号不被占用

:wq

修改nginx-1.14.0/conf里面的nginx.conf

vi nginx.conf

在#gzip on 后面加上

 upstream local_tomcat {

        server 192.168.3.32:18081 weight=1;

        server 192.168.3.32:18082 weight=2;

    }

server下面的location修改为

location / {

    proxy_pass http://local_tomcat;

 }

 

1.3启动nginx

然后分别开启Tomcat和nginx

nginx开启方式如下

cd /usr/local/nginx/spin

./nginx

修改配置文件后须执行

./nginx -s reload

1.4验证nginx

修改其中某一个Tomcat的主页

添加区分

地址栏输入192.168.3.32,多次刷新后如果以下两种页面均出现过,说明nginx配置成功

  1. Redis配置

2.1下载

官网下载(https://redis.io/download

2.2 将文件上传到Linux系统

先解压缩

tar -zxvf redis-3.2.12.tar.gz

前往目录

cd redis-3.2.12

安装

make

修改Tomcat的context.xml  添加以下两句

<Valve  className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />

 

<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"  host="192.168.3.32" port="6379" database="0" maxInactiveInterval="60" />

其中host 为ip地址 ,port为Redis端口号

在Tomcat的lib下添加以下几个包

下载链接(https://pan.baidu.com/s/103GnyhO_Cic9biE0iGFFQw

 

2.3启动Redis

运行Redis

./redis-server

查看Redis是否启动

ps -ef|grep redis

 

  1. 验证是否成功

给两个Tomcat上传jeesite-ui项目(项目应当使用Redis缓存)

修改两个项目的启动页和首页以作为区分

输入nginx网址(http://192.168.3.32/jeesite-ui/a/login)

多次刷新后应当两种登陆页面均出现

登录账号后,多次刷新页面,如果两种页面均出现,说明session是共享的,即配置成功

PS:历经1个半星期,总算把这个配置好了,原先是计划用Redis的,因为服务器有1Redis,框架也支持Redis,但是说用memcached,配置好后不能用,终于又改回Redis了