设为首页 收藏本站
查看: 866|回复: 0

[经验分享] tomcat7+nginx+memcached 配置tomcat 集群以及负载均衡

[复制链接]

尚未签到

发表于 2015-11-18 14:39:20 | 显示全部楼层 |阅读模式
  经过从网上查找资料以及参考了几篇文章,总算自己摸索下来了如何进行一系列配置。
  首先:配置tomcat集群 nginx+ tomcat7
  1 安装jdk (可以选择6或者7都可以) 此处不用多说。
  2 下载nginx-1.2.5 (下载附件)
  3 下载 memcached(下载附件)
  4

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


目前选用的是tomcat apache-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;”


    修改后如下:   


location / {
root   html;
index  index.html index.htm;
proxy_pass    http://127.0.0.1;
}       (2)

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


?

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


upstream 127.0.0.1 {  #weigth参数表示权值,权值越高被分配到的几率越大
server 127.0.0.1:8181 weight=1;
server 127.0.0.1:8282 weight=2;
server 127.0.0.1:8383 weight=3;
}


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


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


  启动三台tomcat


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




<%@ page contentType=&quot;text/html; charset=UTF-8&quot; %>
<%@ page import=&quot;java.util.*&quot; %>
<html><head><title>Cluster Test</title></head>
<body>
<%
//HttpSession session = request.getSession(true);
System.out.println(session.getId());
out.println(&quot;<br> SESSION ID:&quot; + session.getId()+&quot;<br>&quot;);   
// 如果有新的请求,则添加session属性
String name = request.getParameter(&quot;name&quot;);
if (name != null && name.length() > 0) {
String value = request.getParameter(&quot;value&quot;);
session.setAttribute(name, value);
}   
out.print(&quot;<b>Session List:</b>&quot;);   
Enumeration<String> names = session.getAttributeNames();
while (names.hasMoreElements()) {
String sname = names.nextElement();  
String value = session.getAttribute(sname).toString();
out.println( sname + &quot; = &quot; + value+&quot;<br>&quot;);
System.out.println( sname + &quot; = &quot; + value);
}
%>
</body>
</html>

修改tomcat\conf\server.xml


?

<Engine name=&quot;Catalina&quot; defaultHost=&quot;localhost&quot; jvmRoute=&quot;tomcat7-1&quot;>


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


?


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


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



  6 配置session 共享
  将上面下载好的memcached的压缩包解压到 D:\tomcat7collection\memcached
  使用的是memcached-session-manager-tc7-1.6.3 来进行,使用到的jar包如下:



  jar包下载地址

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


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

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


  

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


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


?
<Manager
className=&quot;de.javakaffee.web.msm.MemcachedBackupSessionManager&quot;
memcachedNodes=&quot;n1:127.0.0.1:11211&quot;
sticky=&quot;false&quot;
sessionBackupAsync=&quot;false&quot;
lockingMode=&quot;uriPattern:/path1|/path2&quot;
requestUriIgnorePattern=&quot;.*\.(ico|png|gif|jpg|css|js)$&quot;
transcoderFactoryClass=&quot;de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory&quot;/>




关闭所有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的&#20540;不变如下所示,session共享成功


SESSION ID:76AC7C56C4B278ADFDEC6EA782192D15-n1.tomcat7-1



  


  



版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-140789-1-1.html 上篇帖子: 安装memcached agent 下篇帖子: memcached缓存系统的简介与安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表