Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2548705
  • 博文数量: 2110
  • 博客积分: 18861
  • 博客等级: 上将
  • 技术积分: 24420
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-05 18:23
文章分类

全部博文(2110)

文章存档

2011年(139)

2010年(1971)

我的朋友

分类: LINUX

2010-10-14 15:41:43

软件及环境:

apache-tomcat-6.0.29

nginx-0.8.15

centos5.5

nginx:192.168.1.251

tomat1:192.168.1.251

tomat2:192.168.1.252

tomcat安装目录为:/usr/local/tomcat

nginx安装目录为:/usr/local/nginx

 

jdktomcatnginx安装过程省略!

 

Tomcat1配置如下:

修改

Engine字段中添加下cluster内容:

       

                 channelSendOptions="6" defaultMode="true">

 

    

         

         

                   expireSessionsOnShutdown="false"

                   notifyListenersOnReplication="true"/>

                 

          

            

                        address="228.0.0.2"   组播地址-->

                        bind="192.168.1.251"  绑定本机的IP-->

                        port="45564"   通信端口-->

                        frequency="500"

                        dropTime="3000"/>

           

                      address="192.168.1.251"

                        autoBind="100"

                      port="5001"

                      selectorTimeout="100"

                      maxThreads="6"/>

 

           

             

           

           

           

           

         

 

         

                 filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>

 

    

 

         

       

 

Tomcat2配置如下:

修改:

Engine字段中添加下cluster内容:

       

                 channelSendOptions="6" defaultMode="true">

 

 

    

        

         

                   expireSessionsOnShutdown="false"

                   notifyListenersOnReplication="true"/>

        

         

           

                        address="228.0.0.2"

                        bind="192.168.1.252"

                        port="45564"

                        frequency="500"

                        dropTime="3000"/>

           

                      address="192.168.1.252"

                        autoBind="100"

                      port="5002"

                      selectorTimeout="100"

                      maxThreads="6"/>

 

           

             

           

           

           

           

         

 

         

                 filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>

 

  

 

         

       

 

配置nginx负载:

使用nginx做负载很简单,只要在配置文件里面加

  upstream    {

#         ip_hash;  //启用这个的话,整个C类地址会防问同一个server

        server 192.168.1.251:8080;

        server 192.168.1.252:8080;

                   #两台负载的IP地址,这里默认的是RR

      }

 

 

  server

  {

    listen       80;

    server_name  _;

 

    location / {

            proxy_pass        http://;

            proxy_set_header   Host             $host;

            proxy_set_header   X-Real-IP        $remote_addr;

            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

        }

 

  }

 

到这里配置文件就OK了,服务器的启动顺序如下:

 

 

|-------------|      |-------------|       |-------------|

|tomcat1 |  --à  |tomcat2 |  --à  |nginx   |

|-------------|      |-------------|       |-------------|

 

先启动tocmat1,tomcat1启动完全的时候再启动tomcat2,等两个tocmat全启动之后,再启动nginx

 

 

测试一下我们的配置,测试页如下:

<%@ page contentType="text/html; charset=GBK" %>  

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

Cluster Test  

  

<%  

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

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

  out.println("
SESSION ID:" + session.getId()+"
");    

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

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

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

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

     session.setAttribute(name, value);  

  }    

    out.print("Session List:");    

    Enumeration names = session.getAttributeNames();  

    while (names.hasMoreElements()) {  

        String sname = names.nextElement();   

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

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

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

   }  

%>  

 

  

    名称:  

    
  

    :  

    
  

    提交">  

     

  

 

配置WEB-INF下的web.xml文件,在中加入

 

 

 

 

然后我们就可以用nginx来防问了!

先防问,然后随便关闭那一个,再开启,发现SESSION都是同步的!

 

PS:

负载的时候可以用APACHENGINX,如果什么都不用,两台一接防问了话,可能会出错极session不同步的问题,网上也很多人介意不要做seeeion同步,这样会降低机器的性能,有一个方法可以,就是NGINXip_hash,这样至少可以保证客户端去防问同一台TOCMAT,除非那台TOCMAT挂了!

阅读(348) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~