搭建Nginx(负载均衡)+Redis(Session共享)+Tomcat集群

一、环境搭建


 

Linux下搭建Tomcat7、Java8

 

二、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是相同的



到此配置全部完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值