zoukankan      html  css  js  c++  java
  • apache的tomcat负载均衡和集群配置 "

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

    要集群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

    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为例

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

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

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

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

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

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

  • 相关阅读:
    BIEE变量总结
    微信支付回调问题
    内网搭建WEB服务器教程(转载)
    c#简体繁体转换
    js页面之间函数调用
    数据库性能优化一:SQL索引一步到位
    EasyUI兼容IE问题
    SQL函数说明大全
    经典SQL语句大全(绝对的经典)
    Sql Server 常用系统存储过程大全
  • 原文地址:https://www.cnblogs.com/telwanggs/p/6473578.html
Copyright © 2011-2022 走看看