300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > tomcat7+nginx+memcached 配置tomcat 集群以及负载均衡

tomcat7+nginx+memcached 配置tomcat 集群以及负载均衡

时间:2020-12-31 06:56:12

相关推荐

tomcat7+nginx+memcached 配置tomcat 集群以及负载均衡

首先:配置tomcat集群 nginx+ tomcat7

1 安装jdk (可以选择6或者7都可以) 此处不用多说。

2 下载nginx-1.2.5 (下载附件)

3 下载memcached(下载附件)

4

(注意:nginx负载均衡不会有太大问题,但是,在用memcached配置session共享的时候,tomcat的版本可能成为关系到成败的关键,

目前选用的是tomcatapache-tomcat-7.0.12 版本

5、首先用nginx来搭建三台tomcat服务器的负载均衡环境,如何在一台机器启动三个tomcat请参照我的另外一篇文章

我的tomcat的端口分别是8181,8282,8383

解压下载的nginx压缩包,我的路径是D:\tomcat7collection\myserver;

在D:\tomcat7collection\myserver\nginx-1.2.6\conf下找到nginx.conf,该文件为nginx的请求分发配置文件,打开nginx.conf做如下修改:

(1)在http {…} - server{…} - location / {…}中加入一行:“proxy_pass http://127.0.0.1;”

修改后如下:

[html]view plaincopy

location/{

roothtml;

indexindex.htmlindex.htm;

proxy_passhttp://127.0.0.1;

}

(2)

在http {…}中加入以下代码:

?

#设定负载均衡的服务器列表

[html]view plaincopy

upstream127.0.0.1{<spanstyle="font-family:'CourierNew',Consolas,'BitstreamVeraSansMono',Courier,monospace;line-height:24px;white-space:pre-wrap;background-color:rgb(248,248,248);">#weigth参数表示权值,权值越高被分配到的几率越大</span>

server127.0.0.1:8181weight=1;

server127.0.0.1:8282weight=2;

server127.0.0.1:8383weight=3;

}

可以进行请求分发的简单测试,

启动nginx,打开cmd,进入到D:\tomcat7collection\myserver\nginx-1.2.6\ 路径下 输入nginx 敲回车,调度处任务管理器看到进程里面有nginx则表示启动成功

启动三台tomcat

用eclipse新建一个web项目cluster,该项目下新建一个cluster.jsp文件,编辑该文件内容如下:

[html]view plaincopy

<%@pagecontentType="text/html;charset=UTF-8"%>

<%@pageimport="java.util.*"%>

<html><head><title>ClusterTest</title></head>

<body>

<%

//HttpSessionsession=request.getSession(true);

System.out.println(session.getId());

out.println("<br>SESSIONID:"+session.getId()+"<br>");

//如果有新的请求,则添加session属性

Stringname=request.getParameter("name");

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

Stringvalue=request.getParameter("value");

session.setAttribute(name,value);

}

out.print("<b>SessionList:</b>");

Enumeration<String>names=session.getAttributeNames();

while(names.hasMoreElements()){

Stringsname=names.nextElement();

Stringvalue=session.getAttribute(sname).toString();

out.println(sname+"="+value+"<br>");

System.out.println(sname+"="+value);

}

%>

</body>

</html>

修改tomcat\conf\server.xml

?

<Enginename="Catalina"defaultHost="localhost"jvmRoute="tomcat7-1">

对应的另外两台tomcat分别是 tomcat7-2 tomcat7-3

?

将cluster项目打包成war包分别放到每个tomcat的webapps下

在浏览器中输入localhost:8080/cluster/cluster.jsp重复刷新可以看到输出的session值在变化说明分发处理成功

6 配置session 共享

将上面下载好的memcached的压缩包解压到D:\tomcat7collection\memcached

使用的是memcached-session-manager-tc7-1.6.3 来进行,使用到的jar包如下:

jar包下载地址

下载如下jar包,点击下载spymemcached-2.7.3.jar

其他jar包可以从如下链接找到:/p/memcached-session-manager/downloads/list

如果大家懒得挨个去下,我提供了自己下载整理好的下载tomcate session 共享所需jar包下载

好了,把上述jar包放到tomcat/lib 目录下,修改每个tomcat的配置文件tomcat\conf\context.xml

在<context>...</context>标签之间加入如下代码:

?

[html]view plaincopy

<Manager

className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

memcachedNodes="n1:127.0.0.1:11211"

sticky="false"

sessionBackupAsync="false"

lockingMode="uriPattern:/path1|/path2"

requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"

transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"/>

关闭所有tomcat,打开cmd 进入memcached解压到的路径D:\tomcat7collection\memcached 输入:memcached.exe –d install 回车安装windows服务

输入:memcached.exe –p 11211 –d start 回车启动memcached服务,启动三个tomcat

在浏览器中输入localhost:8080/cluster/cluster.jsp 重复刷新发现session的值不变如下所示,session共享成功

SESSION ID:76AC7C56C4B278ADFDEC6EA782192D15-n1.tomcat7-1

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。