实现达到的效果:
当客户端访问Nginx服务器时,Nginx负载均衡会自动将请求转发到Tomcat1-8001节点或Tomcat2-8002节点服务器,以减轻Tomcat压力,从而达到Tomcat集群化部署,为了使各Tomcat之间共享同一个Session,将采用Redis缓存服务来集中管理Session存储。Nginx实现负载均衡,并使用Redis实现session共享。
一、基础信息
IP | 主机名 | 应用 | 端口 |
---|---|---|---|
192.168.42.145 | Liuyang | jdk1.7+tomat7 | 8001 |
192.168.42.145 | Liuyang | jdk1.7+tomat7 | 8002 |
192.168.42.145 | Liuyang | nginx1.14 | 80 |
192.168.42.145 | Liuyang | Redis5 | 6379 |
123.57.62.31 | Liuyang | Mysql | 3306 |
本机虚拟机用的话,关闭iptables防火墙和selinux。如果是生产环境,开启iptables后,需要开放对应的应用端口。
备注:如果是云服务器,还需要在云服务器-控制台-安全组-入口规则里面开放对应的端口
二、安装nginx
安装所需要的编译软件
[root@liuyang ~]#yum install gcc openssl openssl-devel pcre pcre-devel zlib zlib-devel -y
[root@liuyang ~]#Tar –zxvf nginx-1.14.0.tar.gz
[root@liuyang ~]#cd nginx-1.14.0
[root@nginx-1.14.0]#./configure --prefix=/usr/local/nginx
[root@nginx-1.14.0]#make && make install
三、配置nginx
[root@liuyang ~]cd /usr/local/nginx/conf/
[root@bogon conf]#vi nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream liuyang.ais.com {
server 192.168.42.145:8001 weight=1 ;
server 192.168.42.145:8002 weight=5 ;
}
server {
listen 80;
server_name liuyang.ais.com;
location /ais {
proxy_pass http://liuyang.ais.com;
}
}
}
检查配置文件
[root@bogon conf]#/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
四、启动nginx
[root@bogon conf]/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
五、redis安装
[root@liuyang ~] tar -zxvf redis-5.0.5.tar.gz
没有C语言环境 在yum install gcc-c++ 一下
进入到/usr/local/redis-5.0.5/ 目录下,进行编译与安装
[root@localhost redis-5.0.5]# make //对解压后的文件进行编译
[root@localhost redis-5.0.5]# cd ./src //进入到 redis-5.0.0/src 文件目录下
[root@localhost src]# make install //进行redis安装
配置redis.conf
1、 修改bind 192.168.42.145
2、 更改redis远程保护模式:protected-mode=no
启动redis-server
Redis-server redis.conf & 后台运行
注意:一定要指定配置文件 否则可能出现问题
温馨提示:
需要将redis.conf文件中的bind改为本机ip.不能使用默认的127.0.0.1,否则远程连接该redis就会失败
六、配置tomcat使用redis
/usr/local/ais/tomcat7.0.65-8001/conf/context.xml
< Valve className=“com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve” />
< Manager className=“com.orangefunction.tomcat.redissessions.RedisSessionManager”
host=“192.168.42.145” port=“6379” database=“0” maxInactiveInterval=“60” />
温馨提示:
如果远程redis设置了密码,则就多加一行配置:password=“123456”
最后将依赖的三个jar包拷贝到tomcat的lib目录下
commons-pool2-2.4.2.jar
jedis-2.9.0.jar
tomcat-redis-session-manager1.2.jar
七、配置tomcat(端口,JDK)
1、更改server.xml:
Tomcat8001:
① <Server port="8095" shutdown="SHUTDOWN">
② <Connector port="8001" protocol="HTTP/1.1"
③ <Connector port="8089" protocol="AJP/1.3" redirectPort="8493" />
Tomcat8002:
① <Server port="8096" shutdown="SHUTDOWN">
② <Connector port="8002" protocol="HTTP/1.1"
③ <Connector port="8090" protocol="AJP/1.3" redirectPort="8494" />
3、 更改catalina.sh 配置JAVA_OPTS
4、 更改startup.sh 配置JAVA_HOME
八、tomcat通过redis共享session测试
1、启动tomcat nginx redis
访问http://liuyang.ais.com/ais 不断刷新页面,发现页面的其他信息改变,但是sessionid保持不变,即说明实现了session共享!