一、环境搭建
二、Nginx的安装配置与测试
看博主另一篇文章
CentOS7 安装nginx1.11
三、配置Tomcat集群
1)复制出两个Tomcat
复制:cp -r Tomcat-7 ./Tomcat7-2
重命名:mv Tomcat-7 Tomcat7-1
查看:ls
bin etc games include lib man nginx sbin share soft src ssl Tomcat7-1 Tomcat7-2
2)修改其中一个Tomcat的 server.xml
打开配置文件:vim conf/server.xml
-
<Server port="8005"shutdown="SHUTDOWN"> 改为 8006
-
<Connector port="8080"protocol="HTTP/1.1" 改为 8081
-
<Connector port="8009"protocol="AJP/1.3" 改为 8010
保存::wq
3)添加测试页面
创建应用文件夹:
mkdir /usr/local/Tomcat7-1/webapps/www mkdir /usr/local/Tomcat7-2/webapps/www
添加测试页面:vim /usr/local/Tomcat7-1/webapps/www/index.jsp
<%@ pagelanguage="java" %> <html> <head><title>TomcatA</title></head> <body> <h1style="color: red;">Tomcat A</h1> <tablealign="centre"border="1"> <tr> <td>Session ID</td> <td><%= session.getId() %></td> </tr> <tr> <td>Created on</td> <td><%= session.getCreationTime() %></td> </tr> </table> </body> </html> sessionID:<%=session.getId()%> <br> SessionIP:<%=request.getServerName()%> <br> SessionPort:<%=request.getServerPort()%> <% out.println("This is Tomcat Server A"); %> |
复制测试页面:cp /usr/local/Tomcat7-1/webapps/www/index.jsp /usr/local/Tomcat7-2/webapps/www/
4)分别启动两个Tomcat
启动服务:
cd /usr/local/Tomcat7-1/bin/
./startup.sh
浏览器打开IP:8080/www/index.jsp 与 IP:8081/www/index.jsp,显示如下
四、用Nginx实现集群的负载均衡
1)修改Nginx配置文件
打开配置文件:vim /usr/local/nginx/conf/nginx.conf
在http { 内添加:
#Tomcat
upstream zhengbin {
server 192.168.33.10:8080 max_fails=1 fail_timeout=10s;
server 192.168.33.10:8081 max_fails=1 fail_timeout=10s;
}
在http { 的 server { 的 location / { 内添加:
proxy_pass http://zhengbin;
保存配置::wq
2)重启Nginx
重新加载命令:/usr/local/nginx/sbin/nginx -s reload
查看更多命令:nginx/sbin/nginx -h
现在浏览器打开http://IP/www/,同样显示TomcatA或TomcatB,尝试不断刷新,两个页面会交替显示,即成功
但发现SessionID并不相同,接下来通过Redis来实现Session的共享(同步)
五、安装配置Redis并实现Session共享
1)安装测试Redis
可以参考博主另一篇博客: 也可以安装一个redis 不用安装集群
CentOS7 配置redis3.0集群
2)下载相关jar
1.下载commons-pool,建议下载1.6,2.4.2没有测试成功
2.下载tomcat-redis-session-manager,我用的jdk7所以用的是-7.jar
3.下载jedis作为java的redis客户端,建议用2.1.0,最新版本没有测试成功
最后将三个jar分别放在两个Tomcat的 /lib 中
3)配置Tomcat
修改配置文件:vim /usr/local/Tomcat7-1/conf/context.xml
在<Context>节点中,添加以下内容:
<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />
<Manager className="com.radiadesign.catalina.session.RedisSessionManager"
host="127.0.0.1"
port="6379"
database="0"
maxInactiveInterval="60"/>
复制:cp /usr/local/Tomcat7-1/conf/context.xml /usr/local/Tomcat7-2/conf/
复制的小伙伴tomcat启动的时候要是报错,可能是上面内容空格有问题,可以把空格删了自己重新空格
4)启动测试
1.启动Nginx:/usr/local/nginx/sbin/nginx
2.启动Redis:redis-server
3.启动Tomcat:/usr/local/Tomcat7-1/bin/startup.sh && /usr/local/Tomcat7-2/bin/startup.sh
浏览器打开http://IP/www/index.jsp
发现即使两个Tomcat在切换,但各自的SessionID是相同的
到此配置全部完成