Terracotta+Tomcat+nginx实现session的共享

环境准备:(Nginx,tomcat的安装部署本例不赘述。)

         192.168.1.13     nginx

         192.168.1.225    tomcat7terracotta

         192.168.1.226    tomcat7

   

部署terracotta+tomcat集群:

 

一:安装java程序至系统,配置java环境。

1
2
3
# vi /etc/profile
export  JAVA_HOME= /usr/local/java
export  PATH= /usr/local/java/bin :$PATH



二:部署单terracotta服务。

下载terracottahttp://www.terracotta.org/downloads

本例使用terracotta3.7.7版本,每个版本的部署配置略有不同。

1
2
3
4
# tar -zxvf terracotta-3.7.7.tar.gz
# mv terracotta-3.7.7.tar.gz /usr/local/terracotta
  开启terracotta服务:
# /usr/local/terracotta/bin/start-tc-server.sh &

 


三:整合Tomcat,使之成为terracotta的客户端。

复制terracotta的相关jar包到Tomcatlib目录下:(tomcat家目录以$TOMCAT_HOME替代)

1
2
# cp /usr/local/terracotta/common/terracotta-toolkit-1.6-runtime-5.7.0.jar $TOMCAT_HOME/lib/
# cp /usr/local/terracotta/sessions/terracotta-session-1.3.7.jar $TOMCAT_HOME/lib

修改context.xml文件,添加terracotta连接配置:

1
2
# vi $TOMCAT_HOME/conf/context.xml
<ValveclassName= "org.terracotta.session.TerracottaTomcat70xSessionValve" tcConfigUrl= "192.168.1.225:9510" />

集群中的Tomcat配置都基本如上。

 

 

四:配置nginx,使用loadblance方式访问后端tomcat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# vi/usr/local/nginx/conf/nginx
upstream  session
{
    server 192.168.1.225:8080 weight=5 max_fails=2 fail_timeout=30s;
    server 192.168.1.226:8080 weight=5 max_fails=2 fail_timeout=30s;
}
  
server {
     listen 80 default_server;
     server_name 0.0.0.0;
  
     location  /session
     {
      proxy_passhttp: //session ;
     }
}

 

 

五:开启tomcatnginx

1
2
3
13:  # /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
225: # $TOMCAT_HOME/bin/startup.sh
226: # $TOMCAT_HOME/bin/startup.sh


 

六:session测试。

在所有tomcatsession配置目录下,新建session测试页面。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#vi test.jsp
<%@ pagesession= "true"  %>
<html>
< head >
     <title> test  Host1< /title ><!--  //Host2 就写为 "test Host1"  以示区分 -->
< /head >
<body>
<%
     out.println( "SessionId:" +request.getSession().getId()+ "<br />" );
     out.println( "CreationTime:" +request.getSession().getCreationTime());
  
     Stringname=(String)session.getAttribute( "name" );
     if (name==null||name.equals( "" )){
         session.setAttribute( "name" , "HelloHost1!" );  //Host2 就写为 "Hello Host2!"
        out.println(session.getAttribute( "name" ));
     } else {
         out.println(name);
     }
%>
< /body >
< /html >


使用nginx跳转访问tomcattest.jsp页面,效果如下:

 

wKioL1fFOXqzYhTaAAAz4Y6uFIM361.jpg

wKiom1fFOXriA59FAAA1MCJULTo530.jpg

刷新页面多次,可以清楚看到页面是在两个tomcat之间互相跳转。SessionId除了最后的标识改变外,其余的都保持一直,且内容value一直都是HelloHost2。证明了页面的session id 与内容都保持了一直,session共享是生效的。

   

另外,还可以在terracotta服务器上开启监控工具,来查看集群状态:

1
#/usr/local/terracotta/bin/dev-console.sh



Terracotta双机配置:

部署两台Terracotta服务器,在Terracotta目录下,新建tc-config.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#vi tc-config.xml
<?xmlversion= "1.0"  encoding= "UTF-8" ?>
<!--All content copyright Terracotta, Inc., unless otherwise indicated.  
     All rights reserved. -->
<tc:tc-config
xsi:schemaLocation= "http://www.terracotta.org/schema/terracotta-5.xsd"
xmlns:tc= "http://www.terracotta.org/config"
xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" >
   <servers>
     <!-- Sets where the Terracotta servercan be found. Replace the value 
of          host with the server's IP address.-->
     <server host= "192.168.1.225"  name= "Server1" >
       <data>%(user.home) /terracotta/server-data < /data >
      <logs>%(user.home) /terracotta/server-logs < /logs >
     < /server >
     <!-- If using a standby Terracottaserver, also referred to as an 
ACTIVE-PASSIVEconfiguration, add the second server here. -->
     <server host= "192.168.1.226"  name= "Server2" >
      <data>%(user.home) /terracotta/server-data < /data >
      <logs>%(user.home) /terracotta/server-logs < /logs >
     < /server >
<!--If using  more  than one server, add an <ha> section. -->
     <ha>
        <mode>networked-active-passive< /mode >
        <networked-active-passive>
               <election- time >5< /election-time >
        < /networked-active-passive >
     < /ha >
   < /servers >
   <!-- Sets where the generated client logsare saved on clients. -->
   <clients>
     <logs>%(user.home) /terracotta/client-logs < /logs >
   < /clients >
< /tc :tc-config>


 

然后分别用该配置文件,开启terratocca服务。

225

1
#/bin/start-tc-server.sh-f /usr/local/terracotta/tc-config.xml -n Server1 &

226

1
#/bin/start-tc-server.sh-f /usr/local/terracotta/tc-config.xml -n Server2 &










本文转自 icenycmh 51CTO博客,原文链接:http://blog.51cto.com/icenycmh/1844360,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值