用Apache+Tomcat做负载均衡

一、思路:

    1.用apache做请求代理均匀分配服务器请求压力(博主用的是Apache2.2版本)

    2.tomcat做集群,共享请求的session

二、实现步骤(以两个tomcat允许同一个程序为例):

    1.将同一tomcat拷贝两份,然后修改tomcat的server.xml(在conf/目录下)

        如:tomcat1的server.xml(需修改的地方)

        

        

        

        

        tomcat2的server.xml

        

        

        

        

    (AJP),修改只是确保tomcat启动时端口不冲突

    2.配置tomcat集群

    在server.xml的标签下拷贝如下内容

    

  
  
           
  
           
             
             
  
             
             
             
             
             
           
  
           
           
  
           
  
           
           
         

    这样tomcat集群就设置好了

3.修改apache的配置文件httpd.conf

在Apache安装目录下找到Apache2.4/conf/下的 httpd.conf,去掉以下文本前的注释符(#)以便让Apache在启动时自动加载代理(proxy)模块。 
LoadModule proxy_module modules/mod_proxy.so 
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so 
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 
LoadModule proxy_connect_module modules/mod_proxy_connect.so 
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so 
LoadModule proxy_http_module modules/mod_proxy_http.so 
去掉 Include conf/extra/httpd-vhosts.conf前面的注释#,

4.在httpd.conf文档最下面加上以下代码:

ProxyRequests Off

    BalancerMember ajp://localhost:8059 loadfactor=1 route=tomcat7_local_3  smax=5 max=20 ttl=120 retry=300 timeout=15
    BalancerMember ajp://localhost:8019 loadfactor=1 route=tomcat7_local_2  smax=5 max=20 ttl=120 retry=300 timeout=15
    ProxySet lbmethod=byrequests

ajp配置的端口与上面修改tomcat的ajp端口一致,注意route与tomcat中的jvmRoute一致

5.conf/extra/httpd-vhosts.conf,配置虚拟站点,在最下面加上以下代码:

#虚拟机配置,负载均衡配置  注意空格

    ServerAdmin sun@locahost
    ServerName localhost
    ServerAlias localhost
    ProxyPass / balancer://cluster/ stickysession=JSESSIONID|jsessionid nofailover=On
    ProxyPassReverse / balancer://cluster/
    #ErrorLog "logs/error.log"
    #CustomLog "logs/access.log" common
	
	
 

6.在web项目的web.xml文件下添加标签如下:

启动两个tomcat跟apache就行了,博主配置的负载策略是byrequests,就是httpd.conf文件里配置的 ProxySet lbmethod的属性值,也有其它策略(可以自行百度其区别)

运行结果:

用Apache+Tomcat做负载均衡_第1张图片

接口代码

用Apache+Tomcat做负载均衡_第2张图片





你可能感兴趣的:(负载均衡)