首先:配置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;”

    修改后如下:

[html] view plaincopy

  1. location / {

  2. root   html;

  3. index  index.html index.htm;

  4. proxy_pass    http://127.0.0.1;

  5. }

(2)

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

?

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

[html] view plaincopy

  1. upstream 127.0.0.1 {  <span style="font-family: 'Courier New', Consolas, 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 24px; white-space: pre-wrap; background-color: rgb(248, 248, 248); ">#weigth参数表示权值,权值越高被分配到的几率越大</span>

  2. server 127.0.0.1:8181 weight=1;

  3. server 127.0.0.1:8282 weight=2;

  4. server 127.0.0.1:8383 weight=3;

  5. }

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

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

  启动三台tomcat

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

[html] view plaincopy

  1. <%@ page contentType="text/html; charset=UTF-8" %>

  2. <%@ page import="java.util.*" %>

  3. <html><head><title>Cluster Test</title></head>

  4. <body>

  5. <%

  6. //HttpSession session = request.getSession(true);

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

  8. out.println("<br> SESSION ID:" + session.getId()+"<br>");

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

  10. String name = request.getParameter("name");

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

  12. String value = request.getParameter("value");

  13. session.setAttribute(name, value);

  14. }

  15. out.print("<b>Session List:</b>");

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

  17. while (names.hasMoreElements()) {

  18. String sname = names.nextElement();

  19. String value = session.getAttribute(sname).toString();

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

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

  22. }

  23. %>

  24. </body>

  25. </html>

修改tomcat\conf\server.xml

?

<Engine name="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包可以从如下链接找到:http://code.google.com/p/memcached-session-manager/downloads/list

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

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

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

?

[html] view plaincopy

  1. <Manager

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

  3. memcachedNodes="n1:127.0.0.1:11211"

  4. sticky="false"

  5. sessionBackupAsync="false"

  6. lockingMode="uriPattern:/path1|/path2"

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

  8. 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

tomcat7+nginx+memcached 配置tomcat 集群以及负载均衡相关推荐

  1. Nginx+Tomcat集群与负载均衡

    Nginx+Tomcat集群与负载均衡 架构描述 前端一台nginx服务器做负载均衡器,后端放N台tomcat组成集群处理服务,通过nginx转发到后面(注:没做动静分离,静态动态全部都转给tomca ...

  2. 实践中整理出tomcat集群和负载均衡

    实践中整理出tomcat集群和负载均衡 来源:http://macrochen.blogdriver.com/macrochen/1207263.html (一)环境说明 (1)服务器有4台,一台安装 ...

  3. Nginx实现tomcat集群进行负载均衡

    一.背景 随着业务量和用户数量的激增,单一的tomcat部署应用已经无法满足性能需求,而且对于每次发布项目期间服务不可用的问题也凸显,既然出现了这个问题,那么我们本文就借助nginx来完美的解决这个问 ...

  4. Nginx+Tomcat+Memcached实现tomcat集群和session共享

    Nginx+Tomcat+Memcached实现tomcat集群和session共享 [http://blog.csdn.net/shimiso/article/details/8979044] 为什 ...

  5. 结合Apache和Tomcat实现集群和负载均衡

    http://fableking.iteye.com/blog/360870 TomcatApacheJSP应用服务器Web  本文基本参考自 轻松实现Apache,Tomcat集群和负载均衡,经由实 ...

  6. Tomcat服务器集群与负载均衡实现

    一.前言 在单一的服务器上执行WEB应用程序有一些重大的问题,当网站成功建成并开始接受大量请求时,单一服务器终究无法满足需要处理的负荷量,所以就有点显得有点力不从心了.另外一个常见的问题是会产生单点故 ...

  7. Nginx策略搭配Tomcat集群实操手册(二进制安装和Docker容器安装)

    临头一砖--代理服务器Nginx Nginx策略搭配Tomcat集群实操手册(二进制安装和Docker容器安装) Keepalived搭配Nginx的高可用策略验证和实操 Keepalived搭配Ng ...

  8. 搭建服务器集群——Windows7系统中nginx与IIS服务器搭建集群实现负载均衡

    转载:https://www.cnblogs.com/xiongze520/p/10308720.html 分布式,集群,云计算机.大数据.负载均衡.高并发······当耳边响起这些词时,做为一个菜鸟 ...

  9. FastDFS蛋疼的集群和负载均衡(十五)之lvs四层+Nginx七层负载均衡

    ###Interesting things lvs+nginx的拓扑图 准备环境,基于上一篇[Diary Report 2018-1-3]关于FastDFS蛋疼的集群和负载均衡(十三)之LVS-DR环 ...

最新文章

  1. 开辟经济发展的第二战场
  2. POJ1611-嫌犯【图论,并查集】
  3. python ATM购物程序
  4. 冬奥开幕在即,现场通信网络技术深度揭秘!
  5. 微软亚研院:CV领域2019年重点论文推荐
  6. web api 开发记录
  7. python错了能改写吗_python 日常错误
  8. openshift启动失败
  9. Atitit  循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate).
  10. Java项目开发中实现分页的三种方式一篇包会
  11. 【adb命令】电脑操作手机adb命令大全
  12. envi神经网络分类原理,ENVI神经网络分类
  13. testflight无法联网怎么办_疫情期间,汽车驾照和年检过期了该怎么办?
  14. 1092: 地头蛇PIPI
  15. 商品期货交易开仓上限(商品期货开仓限制)
  16. 小程序源码:仿各大APP种树微信小程序源码下载-简单快速上手
  17. Google Play 封杀第三方支付
  18. android 进程被回收,Android开发进阶:Activity和进程的回收和状态恢复
  19. “桃李争春 答谢师恩”王老吉药业携手海王星辰开展感恩教师节活动
  20. 《运算放大器元器件》的特性分析

热门文章

  1. python namedtuple (命名元组)用法详解
  2. 如何在C++中调用python程序?
  3. python map(function, iterable, ...) 内置函数的用法 (序列迭代调用并返回)
  4. python with函数的用法(with expression [as target])
  5. PyQt标准框——QInputDialog(二)
  6. Grandma Capa Knits a Scarf 模拟,字符串
  7. Luntik and Subsequences 思维
  8. java bitset用途_浅谈Java BitSet使用场景和代码示例
  9. java框架_2020年9个最流行的Java框架
  10. Eclipse将整个项目的HTML文件编码改为UTF-8