Nginx是一个高性能的 HTTP 和 反向代理服务器;Nginx 支持简单的负载均衡和容错;Nginx支持作为基本
HTTP 服务器的功能。
Memcached
是一个高性能的分布式内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,Memcached能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。
一、
安装nginx-1.5.12
memcached-win64-1.4.4-14
apache-tomcat-6.0.33-1 注意设置端口号
apache-tomcat-6.0.33-2 注意设置端口号
配号后启动tomcat看是否正常运行。
二、除此之外,我们还需要一些MSM相关的jar包:
javolution-5.4.3.1.jar
memcached-2.4.2.jar
memcached-session-manager-1.5.1.jar
memcached-session-manager-tc6-1.5.1.jar
msm-javolution-serializer-1.5.1.jar
msm-kryo-serializer-1.5.1.jar
msm-xstream-serializer-1.5.1.jar
以上jar包在http://code.google.com/p/memcached-session-manager/downloads/list中下载。

1.1 配置Session共享
一、将上面所述的MSM的jar包拷贝至Tomcat安装目录lib文件夹中;
二、编辑context.xml
className=”de.javakaffee.web.msm.MemcachedBackupSessionManager”
memcachedNodes=”n1:shenjixiang.cn:11211”
requestUriIgnorePattern=”.*/.(png|gif|jpg|css|js)$”
sessionBackupAsync=”false”
sessionBackupTimeout=”100”
transcoderFactoryClass=”de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory”
copyCollectionsForSerialization=”false”/>

1.2 配置Nginx负载均衡

一、Nginx安装完毕后,修改配置文件conf/nginx.conf

http {

include mime.types;

default_type application/octet-stream;

sendfile on;

keepalive_timeout 65;

upstream web_server {

#ip_hash;

server 192.168.134.135:8080 max_fails=3 fail_timeout=30s;

server 192.168.134.136:8080 max_fails=3 fail_timeout=30s;

}

server {

listen 80;

server_name localhost;

location ~ .*.jsp$ {

proxy_pass http://web_server;

proxy_redirect default ;

}

location / {

root html;

index index.html index.htm;

}

}

}

二、重启Nginx

1.3 测试

在两个Tomcat的webapps目录,在ROOT目录下,创建test.jsp文件,文件内容如下:

<%@ page contentType=”text/html; charset=GBK” %>

<%@ page import=”java.util.*” %>

<html><head><title>Cluster App Test</title></head>

<body>

Server Info:

<%

out.println(request.getLocalAddr() + “:” + request.getLocalPort());

%>

<br><br>

<%

out.println(“<br> ID “ + session.getId()+”<br>”);

String dataName = request.getParameter(“dataName”);

if (dataName != null && dataName.length() > 0) {

String dataValue = request.getParameter(“dataValue”) ;

session.setAttribute(dataName, dataValue);

}

out.print(“<b>Session list</b> <br>”);

Enumeration e = session.getAttributeNames();

while (e.hasMoreElements()) {

String name = (String)e.nextElement();

String value = session.getAttribute(name).toString();

out.println( name + “ = “ + value+”<br>”);

System.out.println( name + “ = “ + value);

}

%>

<form action=”test_session.jsp” method=”POST”>

name:<input type=text size=20 name=”dataName”> <br>

key:<input type=text size=20 name=”dataValue”> <br>

<input type=submit>

</form>

</body>

</html>

测试步骤:

先启动memcached cd F:\javaNTM\memcached-win64

memcached.exe -p 11211 -d start

然后启动niginx cd F:\javaNTM\nginx-1.5.12

输入: start nginx

输入: nginx -t

重启: nginx -s reload

如果出现:

nginx: the configuration file F:\javaNTM\nginx-1.5.12/conf/nginx.conf syntax is

ok

nginx: configuration file F:\javaNTM\nginx-1.5.12/conf/nginx.conf test is succes

sful

这样就表示启动成功

然后启动两个Tomcat。

打开浏览器,输入http://localhost:/test.jsp

填写name和key,提交后看以看到

关闭一个Tomcat,再刷新,如果ID的值相同且Session List中值也存在,说明Session是被共享的。这样Nginx+Tomcat+MemCached_集群环境就搭建好了

文章目录

Sides

IT技术分享博客