CentOS6.5下Tomcat7 Nginx Redis配置步骤
所有配置均在一台机器上完成,部署拓扑信息如下:
注意:由于Redis配置对jar包和tomcat版本比较严格,请务必使用tomcat7和本文中提供的jar包。下载地址:
http://pan.baidu.com/s/1bO67Ky
tomcat: tomcat1 localhost:8080
tomcat2 localhost:9080
nginx: localhost:1210
redis: localhost:6379
1. tomcat的安装和配置
1. 在server.xml文件中,修改tomcat2的端口,总共需要修改3处,分别是8080、8005和8009,分别修改为9080、9005和9008。
配置完此步,在浏览器中输入http://localhost:8080 和 http://localhost:9080便可看到tomcat的首页了。
2. nginx配置,实现负载均衡。
2.1 安装PCRE。因为nginx的rewrite模块需要pcre支持,所以需要安装pcre库。
2.1.1. 获取pcre编译安装包,在http://www.pcre.org/上可以获取当前最新的版本
2.1.2. 解压缩pcre-xx.tar.gz包。
2.1.3. 进入解压缩目录,执行./configure。
2.1.4. make
2.1.5. make install
2.2 安装nginx。由于yum源中没有我们想要的nginx,因此需要创建一个yum源。步骤如下:
2.2.1. vim /etc/yum.repos.d/nginx.repo
输入以下内容,然后保存退出。
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
2.2.2. 查询一下yum源是否配置好,执行以下命令,若有结果,说明配置成功。
yum list |grep nginx
2.2.3. 安装nginx。
yum -y install nginx
2.2.4. 配置nginx。实现负载均衡。主要是配置nginx.conf文件,利用 rpm -qc nginx命令查询该配置文件的位置。
2.2.5 检查配置文件是否正确,并重启nginx。
nginx -t
service nginx restart 此处也可用如下命令: nginx -s reload
2.3 验证负载均衡配置
2.3.1 分别修改tomcat1和tomcat2首页文件,获取登录的session id值,添加下图中红框的H1标签
2.3.2 在浏览器输入: localhost:1210,检查是否配置成功。可以看到,已经跳转到tomcat页面了,配置成功。
3. Redis配置,Tomcat共享session。
3.1 下载并安装Redis3
3.1.1 进入Redis官网下载Redis3,步骤略。
3.1.2 解压文件
tar -xvf redis-3.0.2.tar.gz
3.1.3 编译安装。
cd redis-3.0.2
make
make install
./utils/install_server.sh # 配置redis随机启动
3.1.4 Redis的启动和关闭。
service redis_6379 start #6379为redis默认端口号,根据需求修改后,服务名会变
service redis_6379 stop
service redis_6379 restart
3.2 配置Tomcat共享基于Redis的session机制。
3.2.1 将以下3个jar包分别复制到Tomcat的lib目录下:
commons-pool-1.3.jar jedis-2.0.0.jar tomcat-redis-session-manager-1.2-tomcat-7-java-7.jar
3.22 修改tomcat的conf目录下的context.xml文件,在<Context>节点中添加如下内容:
<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />
<Manager className="com.radiadesign.catalina.session.RedisSessionManager"
host="localhost"
port="6379"
database="0"
maxInactiveInterval="60" />
3.3 重启tomcat,在浏览器输入localhost:1210,发现Tomcat1和Tomcat2的session已经共享了。