略看了一下,感觉太复杂,要配置的东西太多,因此在这里写出一种更简洁的方法。

要集群tomcat主要是解决SESSION共享的问题,因此我利用memcached来保存session,多台TOMCAT服务器即可共享SESSION了。

你可以自己写tomcat的扩展来保存SESSION到memcached。

这里推荐使用memcached-session-manager这个开源项目(http://code.google.com/p/memcached-session-manager/ ),下面简称msm。

如何安装nginx、memcached、tomcat这些就不多说了。

先说明一下测试环境:

tomcat1、nginx、memcached安装在192.168.1.11

tomcat2安装在192.168.1.101

下面分步实现基于nginx的tomcat负载均衡和集群配置

一,tomcat集群

1,先下载msm及其依赖包

http://memcached-session-manager.googlecode.com/files/memcached-session-manager-1.3.0.jar

http://memcached-session-manager.googlecode.com/files/msm-javolution-serializer-jodatime-1.3.0.jar

http://memcached-session-manager.googlecode.com/files/msm-javolution-serializer-cglib-1.3.0.jar

http://spymemcached.googlecode.com/files/memcached-2.4.2.jar

http://memcached-session-manager.googlecode.com/files/javolution-5.4.3.1.jar

2,将这5个包放到$TOMCAT_HOME/lib目录下

3,修改$TOMCAT_HOME/conf/server.xml

  1. <Context docBase="E:/java_codes/TestSession/WebContent" path="" reloadable="true" >
  2. <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
  3. memcachedNodes="n1:localhost:11211"
  4. requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$"
  5. sessionBackupAsync="false"
  6. sessionBackupTimeout="100"
  7. transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"
  8. copyCollectionsForSerialization="false"
  9. />
  10. </Context>

这里的memcachedNodes是填写memcached节点,多个节点时可以以空隔分开,如:

n1:localhost:11211 n2:localhost:11212

sessionBackupTimeout的单位为分钟

E:/java_codes/TestSession/WebContent 替换成你的WEB目录

修改后重启两个TOMCAT即可,这个时候已经解决SESSION的共享问题.

二,配置nginx实现负载均衡

以我的nginx.conf为例

  1. #user  nobody;
  2. worker_processes  1;
  3. error_log  logs/error.log;
  4. events {
  5. worker_connections  1024;
  6. }
  7. http {
  8. include       mime.types;
  9. default_type  application/octet-stream;
  10. sendfile        on;
  11. keepalive_timeout  65;
  12. #gzip  on;
  13. upstream  www.docyeah.com   {
  14. server   192.168.1.11:8080;
  15. server   192.168.1.101:8080;
  16. }
  17. server {
  18. listen       80;
  19. server_name  www.docyeah.com;
  20. charset utf-8;
  21. location / {
  22. root   html;
  23. index  index.html index.htm;
  24. proxy_pass        http://www.docyeah.com;
  25. proxy_set_header  X-Real-IP  $remote_addr;
  26. client_max_body_size  100m;
  27. }
  28. location ~ ^/(WEB-INF)/ {
  29. deny all;
  30. }
  31. error_page   500 502 503 504  /50x.html;
  32. location = /50x.html {
  33. root   html;
  34. }
  35. }
  36. }

将www.docyeah.com替换成你的域名

192.168.1.11和192.168.1.101替换成你服务器的IP

OK,已经完成。启动nginx即可。

这是我采用的负载均衡及集群方案,希望大家拍砖.

ps:javaeye的编辑器有问题,代码里加颜色后居然变乱了

apache的tomcat负载均衡和集群配置 "的更多相关文章

  1. 基于apache的tomcat负载均衡和集群配置

    最近不是很忙,用零碎时间做点小小的实验. 以前公司采用F5负载均衡交换机,F5将请求转发给多台服务器,每台服务器有多个webserver实例,每个webserver分布在多台服务器,交叉式的分布集群. ...

  2. 基于apache的tomcat负载均衡和集群配置session共享

    接上面的话题接着继续完善.为什么没接到上篇呢?原因很简单太长的文章不爱看!就像有人写了上千行的方法一样,不是逼得没办法谁爱看谁看,反正我不看. 期间我没有一次配置成功,从失败的开始说起, 1.准备ja ...

  3. 基于Apache的Tomcat负载均衡和集群(2)

    反向代理负载均衡 (Apache+JK+Tomcat) 使用代理服务器可以将请求转发给内部的Web服务器,让代理服务器将请求均匀地转发给多台内部Web服务器之一上,从而达到负载均衡的目的.这种代理方式 ...

  4. 使用apache和nginx代理实现tomcat负载均衡及集群配置详解

    实验环境: 1.nginx的代理功能 nginx proxy: eth0: 192.168.8.48 vmnet2 eth1: 192.168.10.10 tomcat server1: vmnet2 ...

  5. apache + tomcat 负载均衡分布式集群配置

    Tomcat集群配置学习篇-----分布式应用 现目前基于javaWeb开发的应用系统已经比比皆是,尤其是电子商务网站,要想网站发展壮大,那么必然就得能够承受住庞大的网站访问量:大家知道如果服务器访问 ...

  6. Apache、Tomcat负载均衡与集群

    一. 环境准备 1.软件下载 a) apache_2.0.55-win32-x86-no_ssl.msi: b) apache-tomcat-5.5.17.rar c) mod_jk-apache-2 ...

  7. 基于nginx的tomcat负载均衡和集群

    要集群tomcat主要是解决SESSION共享的问题,因此我利用memcached来保存session,多台TOMCAT服务器即可共享SESSION了. 你可以自己写tomcat的扩展来保存SESSI ...

  8. Linux下Apache与Tomcat的完全分布式集群配置(负载均衡)

    最近公司要给客户提供一套集群方案,项目组采用了Apache和Tomcat的集群配置,用于实现负载均衡的实现. 由于以前没有接触过Apache,因此有些手生,另外在网上搜寻了很多有关这方面的集群文章,但 ...

  9. 基于mod_proxy+Apache 2.2.16+Tomcat 7的负载均衡与集群配置

    第一章. 背景简介 对于大多数企业应用,都希望能做到7*24小时不间断运行.要保持如此高的可用性并非易事,比较常见的做法是将系统部署到多台机器上,每台机器都对外提供同样的功能,这就是集群.系统变为集群 ...

随机推荐

  1. 【靶场练习_sqli-labs】SQLi-LABS Page-3 (Stacked Injections)

    Less-39: ?id=1 and 1 ,?id=1 and 1 : 回显不同,数字型 ?id=0 union select 1,2,group_concat(table_name) from in ...

  2. [CSP-S模拟测试]:Endless Fantasy(DFS)

    题目描述 中二少年$cenbo$幻想自己统治着$Euphoric\ Field$.由此他开始了$Endless\ Fantasy$.$Euphoric\ Field$有$n$座城市,$m$个民族.这些 ...

  3. linux6.5 RPM方式安装 mysql5.6

    步骤一.检查下linux是不是已经安装了MySQL # rpm -qa|grep mysql mysql-libs-5.1.71-1.el6.x86_64 # rpm -e --nodeps mysq ...

  4. 2018-2019-2 20175213实验四 《Android开发基础》实验报告

    一.实验报告封面 课程:Java程序设计 班级:1752班 姓名:吕正宏 学号:20175213 指导教师:娄嘉鹏 实验日期:2019年5月14日 实验时间:13:45 - 21:00 实验序号:实验 ...

  5. python中nonlocal 的作用域

    ''' nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量. ''' def work(): x = 0 def new_work(): nonlocal x x=x+3 retur ...

  6. Java JsonPath grab InvalidPathException in code, you must be catching Java 7's java.nio.file.InvalidPathException instead of JsonPath's com.jayway.jsonpath.InvalidPathExceptio

    I am using JsonPath and am able to parse my data and get the values when the path provided is correc ...

  7. iterm2简易登录服务器

    文章目录 添加文件 添加配置 直接登录 方法一 方法二 添加文件 在mac任意目录添加 10.0.1.1.txt ,这里的名字可以随意起,也可以不是txt #!/usr/bin/expect set ...

  8. php_openssl.dll' - 找不到指定的模块。 in Unknown on line 0

    今天在windows2003配置IIS+php_openssl,php-error.log老是提示“PHPWarning:PHPStartup:Unabletoloaddynamiclibrary'C ...

  9. Yahoo! 35条网站性能优化建议

    Yahoo! 35条网站性能优化建议 Yahoo!的 Exceptional Performance团队为改善 Web性能带来最佳实践.他们为此进行了一系列的实验.开发了各种工具.写了大量的文章和博客 ...

  10. Visual Studio禁用IntelliSense

    通过Everything搜索feacp.dll,然后修改其名字或者直接删除之. 重启Visual Studio.