apache和tomcat整合配置

http://my.oschina.net/u/273709/blog/77827

1.apache version:2.2.15 ,tomcat version :6

2.httpd.conf  解开注释httpd-vhosts.conf

3.httpd-vhosts.conf 增加如下内容:

80:为本地http server端口

<VirtualHost *:80>  #stickysession 会话级别负载均衡,不配置的时候是请求级别负载均衡 bybusyness 按照繁忙程度均衡
    ServerAdmin test@test.com #异常时发送邮件的地址
    ServerName  www.**.com   #代理访问名           
    ServerAlias   www.**.com  #访问的别名

    ProxyRequests Off    # 反向代理打开
    ProxyPreserveHost On # 传送原始请求的Host信息给被代理的机器

    #代理和反向代理,要访问/zlex路径时,将跳转到balancer://zlex,实现负载均衡 (session复制的时候要这样:/zlex)
    ProxyPass /zlex balancer://zlex/ lbmethod=bybusyness
    ProxyPassReverse /zlex balancer://zlex

    #session唯一,粘性会话模式    
    #ProxyPass /zlex balancer://cluster/ lbmethod=byrequests stickysession=JSESSIONID|jsessionid     nofailover=Off timeout=5 maxattempts=3
    # ProxyPassReverse /zlex balancer://zlex


    <Proxy balancer://zlex>
    BalancerMember ajp://192.168.140.129:8009/zlex loadfactor=1 route=jvm1
    BalancerMember ajp://192.168.140.129:8010/zlex loadfactor=1 route=jvm2            
    </Proxy>      

    LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommon
    ErrorLog  logs/error.log
    CustomLog logs/access.log common
</VirtualHost>


4 修改context.xml:

<Context distributable="true">

5 修改server.xml: (不同机器时不用修改1,2,3的端口)
<!--0 modify port -->
<Server port="8101" shutdown="SHUTDOWN">

    <!-- 1 modify port -->
    <Connector URIEncoding="UTF-8" executor="tomcatThreadPool" port="8081" protocol="HTTP/1.1" enableLookups="false" acceptCount="700" maxSpareThreads="100"
               connectionTimeout="30000"
               redirectPort="8443" />

    <!--2 modify port  -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>

    <!--3 modify jvmRoute  -->
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">

    <!--4 tomcat6 以上不用配置  -->
    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" />

6.解注释httpd-info.conf:

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    #Deny from all
    Allow from all
</Location>

<Location /server-info>
    SetHandler server-info
    Order deny,allow
    #Deny from all
    Allow from all
</Location>

<Location /balancer-manager>
    #用来负责监控
    SetHandler balancer-manager
    Order deny,allow
    #Deny from all
    Allow from all
</Location>

以上步骤所基本的配置

 

步骤:

  1. 安装Apache基本模块
  2. 后台监控
  3. 负载均衡简单测试
  4. 配置Tomcat相关模块(AJP)
  5. 保持Session唯一,粘性会话
  6. Tomcat集群,Session复制



1.安装Apache相关模块
负载均衡需要的主要是代理模块!
经过几次Apache配置尝试,在Ubuntu下配置Apache实在是太容易了。加载什么模块、取消什么模块两个命令搞定。

Shell代码   收藏代码
  1. #启用模块  
  2. sudo a2enmod <model>  
  3. #禁用模块  
  4. sudo a2dismod <model>  



这里,我们需要让Apache提供代理服务,其中又包含基于http、ftp、ajp等等协议的代理功能,同时还需要负载均衡模块。我们可以通过命令逐个加载:

Shell代码   收藏代码
  1. #代理核心模块  
  2. sudo a2enmod proxy  
  3. #代理AJP模块  
  4. sudo a2enmod proxy_ajp  
  5. #代理负载均衡模块  
  6. sudo a2enmod proxy_balancer  
  7. #代理HTTP模块  
  8. sudo a2enmod proxy_http  
  9. #代理FTP模块  
  10. sudo a2enmod proxy_ftp  



完成上述操作后,系统会提示重启Apache!
先不着急重启,现学现卖,了解下Apache的目录结构。在Ubuntu下配置Apache主要是在 /etc/apache2目录下:

分述:

  • apache2.conf核心配置文件,一般不需要修改!
  • conf.d目录,里面包含了一些字符集设置,文档等设置!
  • dav_svn.authzdav_svn.passwd是前面做SVN时,相关权限、密码文件。
  • envvars定义了运行时的用户身份——www-data。
  • httpd.conf是Apache留给我们自己折腾的配置文件,默认为空。apache2.conf会加载这个文件。
  • ports.conf端口默认配置。apache2.conf会加载这个文件。
  • magic为mod_mime_magic模块服务。
  • mods-enabledmods-available mods-enabled会被apache2.conf加载,里面包含*.load和*.conf文件。*.load文件中是加载相应的模块(位于/usr/lib/apache2/modules/中),而*.conf中是对应的基本配置。但这些文件其实都是链接到mods-available中相应的文件上。当我们通过a2enmod操作时,实际上正是操作了这些软链接。
  • sites-availablesites-enabledmods-enabledmods-available的关系类似,只是其中包含的是站点内容。


罗嗦了一堆,下面配置负载均衡部分。
执行修改:

Shell代码   收藏代码
  1. sudo vi /etc/apache2/mods-available/proxy.conf  



上图红框中的内容是原始内容,白框中的内容是我新加的部分。
注意红框中的配置:

Conf代码   收藏代码
  1. <Proxy *>  
  2.         AddDefaultCharset off  
  3.         Order deny,allow  
  4.         #Deny from all  
  5.         Allow from localhost ip6-localhost    
  6. </Proxy>  


在默认配置中,Deny from all处于可用状态。当我们配置其他代理节点时,将导致杜绝访问!使用 Allow from localhost ip6-localhost 限制仅允许本机访问!
再说,白框中的内容:

Conf代码   收藏代码
  1. <Proxy balancer://zlex>  
  2.         BalancerMember http://localhost:8080/  
  3.         BalancerMember http://192.168.49.1:8080/  
  4. </Proxy>  


这里,我配置了一个负载均衡节点 balancer://zlex,其中包含了两个服务 http://localhost:8080/http://192.168.49.1:8080/,一个是虚拟机上的Tomcat、一个是真机上的Tomcat。这里使用的Http的转发方式,当然,使用AJP未尝不可,稍后详述!
这里的节点次序会有一个先后关系,Apache会将请求按照FIFO的方式调度顺次分配到各个节点上!如果其中有一个节点挂掉,将跳过该节点顺次寻找可用节点。
再说代理和反向代理:

Conf代码   收藏代码
  1. ProxyPass /zlex balancer://zlex  
  2. ProxyPassReverse /zlex balancer://zlex  


这里配置,如果要访问 /zlex路径时,将跳转到 balancer://zlex上,也就是享受负载均衡!

2.后台监控
我们如何知道某个节点负载多少,响应时间多久,服务是否正常呢?Apache提供了负载均衡监控平台: http://localhost/balancer-manager。但是,这个服务默认是不存在。
除了用于负载均衡配置、监控的 balancer-manager还有 http://localhost/server-status http://localhost/server-info
我们需要添加info模块:

Shell代码   收藏代码
  1. #系统信息模块  
  2. sudo a2enmod info  


同时,为了能够使用 balancer-manager,我们需要配置:

Conf代码  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值