• 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,检查是否能正常访问。

  • 相关阅读:
    近期安卓与IOS招聘面试有感
    java线程池技术(二): 核心ThreadPoolExecutor介绍
    java线程池技术(一):ThreadFactory与BlockingQueue
    Java设计模式之策略模式与状态模式
    java线程间通信:一个小Demo完全搞懂
    Android M 新的运行时权限开发者需要知道的一切
    Java多线程同步问题:一个小Demo完全搞懂
    java多线程之守护线程以及Join方法
    安卓电量优化之JobScheduler使用介绍
    安卓电量优化之WakeLock锁机制全面解析
  • 原文地址:https://www.cnblogs.com/zj233/p/5892190.html
Copyright © 2020-2023  润新知