tomcat+apache应用整合

1.为什么要配置?  
    其实,作为tomcat,安装完成之后,已经能够作为网站服务器使用了。对于很多使用者来说,它已经足够了,所以,如果你的目的不是配置,而是使用,那么你很可能就不需要看下去了。      
    但是,tomcat单独作为网站服务器呢,有一些缺陷,比如  

    1.   tomcat在访问流量very大的时候,单个tomcat服务器反应慢,死机   
    2.   Tomcat处理静态页面没有apache快  
    3.   Tomcat不如apache容易配置  
    4.   Tomcat没有apache稳定健壮  
    5.   apache支持CGI脚本和API,perl,php等等
   

正是因为上面的原因,我们在有些场合时(非very不用),将两者整合起来使用。
我再重申一次-----Tomcat+Apache最大的一个好处,就是让他们各司其职: Apache负责解析静态页面,并把jsp流量分发给不同tomcat服务器,Tomcat负责处理Servlet/Jsp.

2.为什么要这么配置?  
   你很有可能也听说过weblogic,websphere,和jbuilder整合的案例,这些案例也能配置网站服务器,jbuilder、weblogic...这些工具不可谓不好,但是这些工具有一个致命的弱点,那就是---They   are   not   free!而tomcat+apache   is   free,而且,对于个人,以及中小型企业来说,tomcat+apache已经够用了,所以,下面的我就不用说了吧。

3.整合

当前软件本版:
    Windows xp
    apache-tomcat-6.0.14(监听tcp8080端口)
    apache_2.2.6-win32-x86-openssl-0.9.8e(监听tcp80端口)

首先apache的modules中增加mod_jk.so
    到http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32下载 mod_jk-apache-2.2.4.so
    将mod_jk-apache-2.2.4.so拷贝到apache安装目录下面的modules目录中

然后修改apache的配置
    修改apache安装目录下conf目录下的httpd.conf,增加如下配置

      LoadModule jk_module modules/mod_jk-apache-2.2.4.so

      JkWorkersFile "tomcat安装目录/conf/workers.properties"

     JkLogFile "apache安装目录/logs/mod_jk.log"

      JkMount /*.jsp ajp13

      JkMount /*.do ajp13


最后增加tomcat配置文件
    在tomcat的conf目录下建一个workers.properties的文本文件,添加如下配置
 
     workers.tomcat_home="tomcat安装目录"

     #让mod_jk模块知道Tomcat的安装路径

     workers.java_home="java安装目录"

     #让mod_jk模块知道jdk路径

     ps="

     worker.list=ajp13

     #这里是关键,名字要和httpd.conf的一致。如果这里改了httpd.conf也要改。

     worker.ajp13.port=8009

     #工作端口,tomcat的jk监听端口,可以查看Server.xml中有port="8009"           

     worker.ajp13.host=localhost

     #Tomcat所在机器,如果安装在与apache不同的机器则需要设置IP

     worker.ajp13.type=ajp13

     #类型,好像不能改,会出问题

     worker.ajp13.lbfactor=1

     #负载平衡因子  

整合操作说明
     mod_jk-apache-2.2.4.so相当于是apache与tomcat之间的桥梁一样,所以在apache的配置文件下面加上LoadModule jk_module modules/mod_jk-apache-2.2.4.so 将此模块载入
     JkWorkersFile "tomcat安装目录/conf/workers.properties" 说明了mod_jk-apache-2.2.4.so 如何工作,当出现要转发时,将请求发送到那里进行处理,代表了一系列的工作参数
     JkLogFile "apache安装目录/logs/mod_jk.log" 设定日志的地址。
     JkMount 说明了将什么样的URL进行发送到tomcat进行处理。
     JkMount /*.jsp ajp13 说明了要将jsp请求发到tomcat
     JkMount /*.do ajp13说明了要将.do型的servlet发到tomcat进行处理。在实际的分发中,如果servlet命名不带后缀的话,将无法被识别,也就无法进行处理

4.context内容(虚拟目录)谁来维护
     作为jsp应用,我们由tomcat来维护context内容,修改DoucmentRoot与tomcat的目录一致
          DocumentRoot "tomcat主目录"
     若本机器还有类如PHP的应用,我们由apache来维护context内容,修改tomcat与DoucmentRoot的目录一致
          <Host>
   <--! 省略-->
            <Context path="" docBase="apache主目录" reloadable="true" debug="0"></Context>
          </Host>

5.整合的基本原理  

作为Apache下面的子项目,Tomcat 与 Apache之间有着天然的联系。在实际操作中,主要是Apache作为主服务器运行,当监听到有jsp或者servlet的请求时,将请求转发给tomcat服务器,由tomcat服务器进行解析后,发回apache,再由apache发回用户。   在tomcat中有两个监听的端口,一个是8080用于提供web服务,一个是8009用于监听来自于apache的请求。当apache收到jsp或者servlet请求时,就向tomcat 的8009端口发送请求,交由tomcat处理后,再返回给apache,由apache返回给客户。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值