1.准备工作
两个Linux服务器,可以用VMware装一个,然后配置好再克隆一个,修改IP即可。
Host1:192.168.0.79
Host2:192.168.0.80
先配置好jdk1.6.0和tomcat6。Host1上还将配置Nginx(负载均衡),Terracotta(session集群).
2.安装Terracotta
下载Terracotta的包,
http://d2zwv9pap9ylyd.cloudfront.net/terracotta-3.4.1-installer.jar 带安装功能的包
http://d2zwv9pap9ylyd.cloudfront.net/terracotta-3.4.1.tar.gz 不带安装的包
http://d2zwv9pap9ylyd.cloudfront.net/terracotta-3.4.1-src.tar.gz 源码包
这里使用terracotta-3.4.1.tar.gz
tar zxvf terracotta-3.4.1.tar.gz
mv terracotta-3.4.1 /usr/local/terracotta
3.配置Tomcat作为Terracotta的客户端
复制/usr/local/terracotta/sessions/terracotta-session-1.1.1.jar
/usr/local/terracotta/common/terracotta-toolkit-1.1-runtime-2.1.0.jar这两个jar到Tomcat对应目录。
Tomcat 5.0 and 5.5 对应目录 $CATALINA_HOME/server/lib
Tomcat 6.0 对应目录 $CATALINA_HOME/lib
编辑/usr/apache-tomcat-6.0.14/conf/context.xml文件
<Context>
<!-- 增加此配置 -->
<Valve className="org.terracotta.session.TerracottaTomcat60xSessionValve" tcConfigUrl="localhost:9510"/>
</Context>
如上是Tomcat6的配置方式,其他WebServer配置方式可见参考文档的具体说明。9510端口为Terracotta的通讯端口,另外默认9520为它的管理端口稍后用到。
4.启动单Terracotta,测试。
启动Terracotta
[Host1]# /usr/local/terracotta/bin/start-tc-server.sh &
启动Tomcat
[Host1]# service tomcatd start
[Host2]# service tomcatd start
(
注意:之前Host2处的Tomcat context.xml配置需要修改为
<Valve className="org.terracotta.session.TerracottaTomcat60xSessionValve" tcConfigUrl="192.168.0.79:9510"/>
即指向启动的Terracotta
)
启动Windows下的Terracotta开发控制台(Terracotta Developer Console),此控制台使用9520端口来监控Terracotta,这个用terracotta-3.4.1-installer.jar带安装的软件包可以在Windows下安装或tar解压运行也可。
[PROMPT] ${TERRACOTTA_HOME}\bin\dev-console.bat
(
注意:需要配置Linux主机名才能远程监控的到。
设置主机名(如果要永久修改RedHat的hostname,就修改/etc/sysconfig/network文件,将里面的HOSTNAME这一行修改成HOSTNAME=NEWNAME)
编辑/etc/hosts
::1 localhost.localdomain localhost
192.168.0.79 Host1 #添加此行
然后service network restart,
查验hostname:
[root@localhost ~]# hostname
host1
)
通过Terracotta Developer Console查看连接的Terracotta Server和Tomcat Client是否正常。
5.安装、配置Nginx
下载http://nginx.org/en/download.html
安装Nginx: (预先需要安装:rpm -ivh pcre-devel-6.6-2.el5_1.7.i386.rpm)
[Host1]#tar zxvf nginx-0.8.54.tar.gz
[Host1]#cd nginx-0.8.54
[Host1]#./configure --with-http_stub_status_module
[Host1]#make;make install
简单配置:修改/usr/local/nginx/conf/nginx.conf
...
http {
...
upstream mysvr {
server 192.168.0.79:8080;
server 192.168.0.80:8080;
}
server {
listen 80;
server_name 192.168.0.79;
location / {
proxy_pass http://mysvr;
....
}
…
}
}
...
测试配置文件
/usr/local/nginx/sbin/nginx -t
启动Nginx
/usr/local/nginx/sbin/nginx
6.观察集群session
jsp验证页test.jsp,部署到两个Tomcat的ROOT项目下:
<%@ page session="true" %>
<html>
<head>
<title>test Host1</title> <!-- //Host2就写为"test Host1" 以示区分 -->
</head>
<body>
<%
out.println("Session Id:"+request.getSession().getId()+"<br />");
out.println("Creation Time:"+request.getSession().getCreationTime());
String name=(String)session.getAttribute("name");
if(name==null||name.equals("")){
session.setAttribute("name","Hello Host1!"); //Host2就写为"Hello Host2!"
out.println(session.getAttribute("name"));
}else{
out.println(name);
}
%>
</body>
</html>
访问test.jsp
http://192.168.0.79/test.jsp
刷新多次。发现除session的id号被Terracotta加了个类似版本编号的后缀有所区别,
例如:Session Id:2jUFdCvDTqrZViJXzvh8.3和Session Id:2jUFdCvDTqrZViJXzvh8.2,以外其他的输出都是一致的。
已达到session集群的作用。
如果关闭Terracotta,然后注释/usr/apache-tomcat-6.0.14/conf/context.xml文件的Valve,重启两个tomcat,再次访问,并刷新,会发现sessionid及其内容在跳变,没有集群特性。这就是Terracotta的作用。
另外有两个单点故障的点,Nginx和Terracotta,Nginx可以通过keepalived配置为热备;
Terracotta内置了热备方式,可以在Host2上也启用Terracotta,需要tc-config.xml配置,具体可参见官方文档。
参考文档:
http://www.terracotta.org/documentation/product-documentation-1page.html 5 Clustering Web Applications with Terracotta Web Sessions 章节
------------------------------------------------------------------------------------------------------------------------------------------------------
配置Terracotta双机热备。
[Host1]#/bin/start-tc-server.sh -f /usr/local/terracotta/tc-config.xml -n Server1 &
[Host2]#/bin/start-tc-server.sh -f /usr/local/terracotta/tc-config.xml -n Server2 &
tc-config.xml 样例:
<?xml version="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 server can be found. Replace the value
of host with the server's IP address. -->
<server host="192.168.0.79" name="Server1">
<data>%(user.home)/terracotta/server-data</data>
<logs>%(user.home)/terracotta/server-logs</logs>
</server>
<!-- If using a standby Terracotta server, also referred to as an
ACTIVE-PASSIVE configuration, add the second server here. -->
<server host="192.168.0.80" 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 logs are saved on clients. -->
<clients>
<logs>%(user.home)/terracotta/client-logs</logs>
</clients>
</tc:tc-config>
转自:http://blog.163.com/comfort_122/blog/static/48904409201131145149530/
相关推荐
在构建高性能、高可用性的Web服务时,"Nginx+Tomcat+Redis"的组合是一种常见的架构模式。这个架构充分利用了每个组件的优势,以实现高效的数据处理、动态内容渲染和负载均衡。以下是对这套技术栈的详细解释: 1. **...
详细说明了windows服务器nginx+tomcat+mysql部署及配置(配置阿里云后台安全组,配置域名)很适合新手学习 附件中包含: 1.操作说明文档 2.操作录屏 3.安装所用到的软件安装包 1)Windows Server 2019 数据中心版 ...
在IT行业中,构建高效、可扩展的Web服务是至关重要的,而"Nginx+Tomcat"的组合常被用于实现这一目标。本实例将详细阐述如何通过Nginx配置集群负载均衡,以实现动静分离,提升系统性能和稳定性。 首先,Nginx是一款...
在构建高性能、高可用性的Web服务时,"Nginx+Tomcat+Redis"的组合是一种常见的架构模式。这个架构利用Nginx作为反向代理和负载均衡器,Tomcat作为Java应用服务器处理业务逻辑,而Redis则用作缓存系统以提升数据访问...
这个小例子"nginx+tomcat+redis完成session共享"旨在演示如何通过这三种技术实现跨服务器的用户会话共享,以提升用户体验并简化系统管理。以下是这些技术及其在会话共享中的作用: 1. **Nginx**:Nginx是一款高性能...
Nginx+Tomcat+Memcached实现tomcat集群和session共享 nginx配置
服务器方面,准备四台服务器,分别作为调度器(Nginx+Keepalived)、服务器池(Tomcat)、数据库服务器(Mysql)和客户端。在软件方面,需要准备Nginx、Keepalived、Tomcat、Mysql和jdk安装包,以及SL会员商城项目...
Keepalived+Nginx+Tomcat 高可用集群搭建实战记录 Keepalived 是一种高可用性解决方案,可以与 Nginx 和 ...Keepalived+Nginx+Tomcat 高可用集群搭建可以提供高可用的 Web 服务,能够满足大型网站和应用程序的需求。
最后,提供的压缩包文件`nginx+tomcat+memcached`可能包含了上述所有组件的配置文件、jar包和安装脚本,帮助用户快速搭建和测试这样的系统。在部署时,务必根据实际网络环境和服务器配置进行适当的调整,确保所有...
nginx+tomcat+redis集群部署环境,包括nginx tomcat redis及集群部署所需jar包,jedis-2.6.1.jar,commons-pool2-2.2.jar,tomcat-redis-session-manager1.2.jar 具体步骤可以参见我的博文
Keepalived+Nginx+Tomcat 实现高可用Web集群 一、Nginx的安装过程 1.下载Nginx安装包,安装依赖环境包 (1)安装 C++编译环境 yum -y install gcc #C++ (2)安装pcre yum -y install pcre-devel (3)安装zlib yum -y...
在构建高性能、高可用性的Web服务时,"nginx+tomcat+ssl_https"是一个常见的组合。这个组合将轻量级的Nginx反向代理服务器与强大的Java应用服务器Tomcat结合,同时通过SSL/TLS协议提供安全的HTTPS连接。下面我们将...
### Nginx+Tomcat+Memcached 共享 Session 集群配置 #### 一、概述 在大型分布式系统中,为了实现高可用性和负载均衡,常常会使用 Nginx 作为反向代理服务器来分发请求到后端多个 Tomcat 实例上。然而,传统的基于...
### Nginx+KeepAlived+Tomcat负载架构详解 #### 一、概述 随着互联网应用的日益增多,单一服务器已经难以满足高并发、高可用性的需求。因此,越来越多的企业开始采用集群技术来提高系统的稳定性和扩展性。本文将...
基于ssm+shiro+redis+nginx tomcat服务器集群管理项目 基于ssm+shiro+redis+nginx tomcat服务器集群管理项目 基于ssm+shiro+redis+nginx tomcat服务器集群管理项目 基于ssm+shiro+redis+nginx tomcat服务器集群管理...
超详细Nginx+Tomcat+Redis搭建高性能负载均衡集群Session共享搭建说明,按文档步骤可轻松搭建并实现session共享
Linux 下的 Nginx+Tomcat 负载均衡简单原理是指通过 Nginx 服务器来实现 Tomcat 服务器集群的负载均衡,以提高网站的可用性和性能。本文将对 Linux 下的 Nginx+Tomcat 负载均衡简单原理进行详细的介绍。 一、拓扑...
本文档主要介绍了 Nginx+Tomcat 负载均衡的企业实战,涵盖了从0开始构建 Nginx WEB 平台、Tomcat WEB 集群、代码发布、Nginx 负载均衡 Tomcat 集群、动静分离、Rewrite 实战等方面的内容。 一、从 0 开始构建 Nginx...
在构建高性能、高可用性的Web服务环境中,"负载均衡nginx+tomcat+terracotta+nfs+mysql"是一个常见的架构组合。这个组合充分利用了各组件的优势,以实现数据的高效处理、分布式存储以及会话共享,确保系统的稳定性和...
Tomcat要支持memcached管理Session,需要调用一些jar库文件如下(网上有的文章中可能所说的jar包不全,或者版本不样的会报错,但这里我已经经过验证了): 1) couchbase-client-1.2.2.jar 2) javolution-5.5.1....