zoukankan      html  css  js  c++  java
  • apache与tomcat负载集群集成方法配置

    apache与tomcat负载集群集成方法有3种jk、jk_proxy、http_proxy

    apache:httpd-2.2.17-win32-x86-no_ssl.msi
    tomcat:apache-tomcat-6.0.20.zip

    安装apache http server省略,访问地址为http://127.0.0.1:8081
    安装tomcat,解压apache-tomcat-6.0.20.zip,测试时我是把两个tomcat分开放在不同的虚拟机,其中一个是和apache同一台虚拟机。
    两个tomcat分别命名为worker2和worker3
    先说tomcat.worker2的配置:
    server.xml
    (1)配置http监听端口,这里端口设为8079,该步骤非必要,只要不冲突就行了。

    [html] view plain copy
     
    1. <Connector port="8079" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />  

    (2)配置AJP监听端口,这里端口设为8077,该步骤非必要,只要不冲突就行了。

    [html] view plain copy
     
    1. <Connector port="8077" protocol="AJP/1.3" redirectPort="8443" />  


    (3)配置服务器标识,这里标识名配置为:worker2,添加jvmRoute="worker2",该步骤必须。

    [html] view plain copy
     
    1. <Engine name="Catalina" defaultHost="localhost" jvmRoute="worker2">  

    在 Engine节点启用集群配置,只需去掉Cluster节点前的注释就行了,该步骤必须,配置了集群才能实现Session复制,如果只有一个集群,只按 我下边的配置就行了,如果多个集群,则不能按此配置,tomcat服务器内的帮助文档/docs/cluster-howto.html,/docs /config/cluster.html有介绍,需要的可以参考下。

    [html] view plain copy
     
    1. <Engine name="Catalina" defaultHost="localhost" jvmRoute="worker2">  
    2.    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>   

    要实现session复制,还需要在context.xml添加属性distributable="true",如下:

    [html] view plain copy
     
    1. <Context distributable="true">  


    如果不想在context.xml中添加distributable="true",还有另一方法是在应用程序的web.xml中添加<distributeable/>

    配置完成,访问地址为:http://127.0.0.1:8079

    注意:如果两个tomcat是放在同一台机内,server.xml可能还需要修改其它端口,请确认两个tomcat能正常启动。端口号不能相同

    现在开始apache和tomcat的不同方式集成
    1、jk方式集成
    下载mod_jk-1.2.31-httpd-2.2.3.so,请下载合适的mod_jk版本,改名为mod_jk.so放进modules文件夹内
    修改conf/httpd.conf配置

    [plain] view plain copy
     
    1. LoadModule jk_module modules/mod_jk.so  
    2. JkWorkersFile conf/workers.properties  
    3. JkLogFile logs/mod_jk.log  
    4. JkLogLevel debug  
    5. JkMount  /*.do loadbalancer  
    6. JkMount  /*.jsp loadbalancer  

    增加conf/workers.properties文件,添加内容

    [plain] view plain copy
     
    1. worker.list=loadbalancer  
    2. worker.worker2.port=8077   #ajp的监听端口  
    3. worker.worker2.host=108.88.3.105  
    4. worker.worker2.type=ajp13  
    5. worker.worker2.lbfactor=1  
    6. worker.worker3.port=9009  
    7. worker.worker3.host=127.0.0.1  
    8. worker.worker3.type=ajp13  
    9. worker.worker3.lbfactor=1  
    10. worker.loadbalancer.type=lb  
    11. worker.loadbalancer.balance_workers=worker2,worker3 #这里在的worker2、worker3为需要与上边tomcat设置的别名一致  
    12. worker.loadbalancer.sticky_session=1  


    配置完成任务,访问http://127.0.0.1:8081/test/test.jsp,检查是否能正常访问。

    2、ajp_proxy
    去掉httpd.conf文件中下面内容的注释(删掉#号),开启下边的配置

    [plain] view plain copy
     
    1. Include conf/extra/httpd-vhosts.conf  
    2. LoadModule proxy_module modules/mod_proxy.so  
    3. LoadModule proxy_ajp_module modules/mod_proxy_ajp.so  
    4. LoadModule proxy_balancer_module modules/mod_proxy_balancer.so  
    5. LoadModule proxy_connect_module modules/mod_proxy_connect.so  
    6. LoadModule proxy_ftp_module modules/mod_proxy_ftp.so  
    7. LoadModule proxy_http_module modules/mod_proxy_http.so  


    注意:
    除了mod_proxy.so,mod_proxy_balancer.so,mod_proxy_connect.so
    如果是采用ajp_proxy,需要加载mod_proxy_ajp.so这个模块;
    如果是采用http_proxy,需要加载mod_proxy_http.so这个模块;

    httpd.conf,删除刚才jk方式的配置内容,增加下边的配置

    [html] view plain copy
     
    1. ProxyRequests Off  
    2. <proxy balancer://loadbalancer>   
    3. BalancerMember ajp://127.0.0.1:9009 loadfactor=route=worker3  
    4. BalancerMember ajp://108.88.3.105:8077 loadfactor=route=worker2  
    5. </proxy>  


    conf/extra/httpd-vhosts.conf增加配置

    [html] view plain copy
     
    1. <VirtualHost *:8081>  
    2.          ServerAdmin xxxx@xxx.com  
    3.          ServerName localhost  
    4.          ServerAlias localhost  
    5.          ProxyPass / balancer://loadbalancer/ stickysession=jsessionid nofailover=On  
    6.          ProxyPassReverse / balancer://loadbalancer/  
    7.          ErrorLog "logs/loadbalancer-error.log"  
    8.          CustomLog "logs/loadbalancer-access.log" common  
    9. </VirtualHost>  


    配置完成任务,访问http://127.0.0.1:8081/test/test.jsp,检查是否能正常访问。

    3、http_proxy
    http_proxy的配置与ajp_proxy类似,修改方法2的httpd.conf配置如下,其它不变

    [html] view plain copy
     
    1. ProxyRequests Off  
    2. <proxy balancer://loadbalancer>   
    3. BalancerMember http://127.0.0.1:8078 loadfactor=route=worker3  
    4. BalancerMember http://108.88.3.105:8079 loadfactor=route=worker2  
    5. </proxy>   


    配置完成任务,访问http://127.0.0.1:8081/test/test.jsp,检查是否能正常访问。

  • 相关阅读:
    ....
    CodeForces 375A(同余)
    POJ 2377 Bad Cowtractors (最小生成树)
    POJ 1258 AgriNet (最小生成树)
    HDU 1016 Prime Ring Problem(全排列)
    HDU 4460 Friend Chains(bfs)
    POJ 2236 Wireless Network(并查集)
    POJ 2100 Graveyard Design(尺取)
    POJ 2110 Mountain Walking(二分/bfs)
    CodeForces 1059B Forgery(模拟)
  • 原文地址:https://www.cnblogs.com/zj233/p/5892190.html
Copyright © 2011-2022 走看看