- 配置的系统环境
- 配置Tomcat6
- 配置Nginx
- 配置Memcached
- 测试
配置的系统环境
做Tomcat集群的目的是为了提供更高的负载能力,把访问均摊到不同的服务器上。当有访问请求时nignx会随机将访问请求分发到tomcat1,tomcat2,为了保持session同步,使用memcached去管理session。
我们配置的环境是:win7,JDK1.7,nginx-1.6.3,tomcat6 2个,memcached-1.4
配置Tomcat6
修改tomcat6/conf文件夹下的server.xml
配置Nginx
1.下载地址:http://nginx.org/en/download.html
2.安装:将安装包nginx-1.4.0.zip解压到X:/
启动Nginx:进入X:/nginx目录,执行命令:start nginx.exe,弹出屏会一闪而逝。在浏览器输入http://localhost,可以看到Nginx的欢迎页。
停止Nginx:nginx.exe -s stop|quit
重启Nginx:nginx.exe -s reload
查看Nginx版本:nginx.exe -v
3.Nginx安装完成后修改配置文件$NGINX_HOME/conf/nginx.conf
在http标签下,配置upstream属性:
*weigth参数表示权值,权值越高表示分配到的几率越大
在http标签下,修改server标签属性
配置Memcached
1.将安装包memcached-win32-1.4.4-14解压到X:/目录下面,重命名为memcached。打开命令提示符,进入X:/memcached的目录,输入安装命令“memcached.exe –d install”,安装memcached的windows服务,然后输入“memcached -d start”,以后memcached将作为windows的一个服务每次开机时自动启动。默认端口:11211。
2.把以下jar包放入两个Tomcat安装目录下的lib文件夹中。
jar包下载地址:http://pan.baidu.com/s/1gd6G5J9
3.修改所有Tomcat目录下conf/context.xml文件,在Context标签中加入如下代码:
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:127.0.0.1:11211"
requestUriIgnorePattern=".*/.(png|gif|jpg|css|js)$"
sessionBackupAsync="false"
sessionBackupTimeout="100"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"
copyCollectionsForSerialization="false" />
测试
在tomcat/webapp/下建立test文件夹
在test文件夹下建立WEB-INF文件夹
在WEB-INF文件夹下建立web.xml文件
在test下建立index.jsp文件
index.jsp代码
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<html><head><title>Test</title></head>
<body>
<%
System.out.println(session.getId());
out.println("<br> SESSION ID:" + session.getId()+"<br>");
%>
</body>
</html>
尝试访问几次后两个tomcat的后台输出如图(session id相同,n1为memcached的节点名称,tomcat1/2为当前访问web应用服务器的名称):