posts - 4,comments - 2,trackbacks - 0
Tomcat是jsp/servlet container,对静态资源(如HTML文件或图像文件)的处理速度,以及提供的Web服务器管理功能方面都不如其他专业的HTTP服务器,如IIS和Apache服务器。
我是以Tomcat5.0.16,apache_2.0.55Http Server,mod_jk-apache-2.0.55.so jk插件进行集成。
一、基本原理
Tomcat的两个常用连接器,
第一个连接器监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。  
第二个连接器监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。

查看conf/server.xml文件,
<Service name="Catalina">
    
<Connector acceptCount="100" connectionTimeout="20000" port="8080" redirectPort="8443" disableUploadTimeout="true">
    
</Connector>
    
<Connector protocol="AJP/1.3" port="8009" redirectPort="8443" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler">
    
</Connector>
    
<Engine defaultHost="localhost" name="Catalina">
      
<Host appBase="webapps" name="localhost">
        
<Logger className="org.apache.catalina.logger.FileLogger" suffix=".txt" prefix="localhost_log." timestamp="true"/>
      
</Host>
      
<Logger className="org.apache.catalina.logger.FileLogger" suffix=".txt" prefix="catalina_log." timestamp="true"/>
      
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
    
</Engine>
  
</Service>
根据以上Service,可以tomcat的安装目录找到conf/Catalina/localhost目录,里面的XML文件为配置该service所有的Context,一个xml文件对应一个context配置。
打开admin.xml,
<Context privileged="true" path="/admin" displayName="Tomcat Administration Application" docBase="../server/webapps/admin">
  
<Logger className="org.apache.catalina.logger.FileLogger" suffix=".txt" prefix="localhost_admin_log." timestamp="true"/>
</Context>
可以看到,配置了一个/admin的context,其docBase为/server/webapps/admin。
二、集成目标
我们对tomcat和http 服务器进行集成的目标就是:让http服务器在80端口进行监听,如果碰到访问静态的html/图片文件访问,直接由http服务器进行处理。如果碰到jsp/servlet等访问,则通过jk插件,转发到tomcat监听的8009端口,由tomcat处理。
三、实施步骤
1、安装apache http server, tomcat. 从略。
2、安装jk插件。
把mod_jk-apache-2.0.55.so拷贝到http server的/modules目录即可。
3、配置apache htpp server,打开conf/httpd.conf文件,
(1)修改Website根目录,
找到DocumentRoot,改为你想放置网站根目录的地方
DocumentRoot "D:/java/Tomcat5.0/webapps/ROOT"
(2)加载jk插件及配置属性
#加载模块
LoadModule jk_module modules/mod_jk-apache-
2.0.55.so
#工作属性文件
JkWorkersFile conf/workers.properties
#日志存放
JkLogFile logs/mod_jk2.log
#日志等级
JkLogLevel info
#日期格式
JkLogStampFormat 
"[%a %b %d %H:%M:%S %Y]"
#日志格式
JkRequestLogFormat 
"%w %V %T"
#Url转发到tomcat
JkMount /*.jsp worker1
JkMount /*.page worker1
4、新建conf/workers.properties
#让mod_jk模块知道Tomcat
workers.tomcat_home
=D:\java\Tomcat5.0
  
#让mod_jk模块知道j2sdk
workers.java_home
=D:\java\j2se

#所配置的Tomcat列表
worker.list
=worker1

#工作端口,若没占用则不用修改
worker.worker1.port
=8009  
  
#Tomcat服务器的地址
worker.worker1.host
=localhost
  
#类型
worker.worker1.type
=ajp13
5、配置tomcat
安装tomcat后,会发现webapps已经有许多目录,其中已有一个Root为tomcat默认的"/"context.
将tomcat webapps下的一些不需要的目录删去,把Root下的文件删除,并把你需要配置的网站内容拷贝到此目录下。
找到conf/Catalina/localhost目录,删除一些没用的xml文件,有些xml文件是tomcat启动时按照webapps的目录自动产生的context。
四、开发时配置
在进行开发时,如果我们使用的是tomcat,我们可以采用此种方法进行配置。
1、通过http://localhost:6060/index.jsphttp://localhost/index.jsp访问效果是一样的,
http://localhost/aBigPicture.gif的访问可能比直接访问tomcat要快多了。
2、进入http://localhost:6060/admin,默认user:admin,password为空,
查看service下面的context,最好把当前开发的web的context的reloadable设置为true,我们所做的修改tomcat会自动重新加载,不用重启tomcat就能立即看到新的变化。
3、在eclipse中将网站的源代码发布到tomcat中有两种方法,
一种是采用eclipse自带的depoly功能,将web发布到webapps/ROOT目录,或任一目录,对应的只是修改conf/Catalina/localhost的xml文件。
另一种方法是采用ant,一个xml文件用于全发布(clean,compile,java,copy),另一个xml文件则只发布修改的(compile,copy)。
小项目用第一种方便,每次修改了源代码,只需刷新一下,eclipse就自动帮你depoly到目的地;
当采用第二种时,每次小修改时,需要运行一次ant,把修改的内容重新拷贝并发布过去;如果发布的内容很脏时,有时需全发布(clean,compile,java,copy)。

配置httpd.conf和workers.properties的详细内容,请参考:
http://tomcat.apache.org/connectors-doc/
posted on 2006-04-06 19:44 Steven Liu 阅读(626) 评论(0)  编辑  收藏 所属分类: 40.Web Servers(Tomcat/Jboss/Websphere)

只有注册用户登录后才能发表评论。


网站导航: