okJohn's blog

抓蛙,抓蛙

apache_2.0.47与tomcat_5.0.19整合

一、准备

  Apache做为最流行的Web服务器功能强大,高效,但并不支持JSP及servlet;Tomcat本身可以做为Web Server, 但是当处理静态页面时,Tomcat不如Apache迅速,不象Apache一样可配置,强壮。所以,通常的做法是把它们整合起来,让Apache处理静态页面,而把动态页面的请求交给Tomcat处理,发挥各自的优势。通过在Apache中加载整合模块和进行设置,Apache就能够根据URL,把不属于自己的请求转给Tomcat。
  要让Apache和Tomcat联合工作,还必需有一个连接器把它们联系起来。连接器(Connector)对于性能、配置的方便性有很重要的影响,目前大致上有JK1.x,JK2,mod_webapp三种connector可以使用。JK使用比较广泛;JK2是JK1.x的改进,比较新,有的版本不太稳定。我
  Apache、Tomcat和Tomcat-Connector均可从
http://archive.apache.org/dist免费下载。
  另外,安装Tomcat之前必须安装JDK或JRE。
  我的OS是win2003,安装的版本分别是J2sdk_1.4.2_04、Tomcat_5.0.19、Apache_2.0.47、mod_jk_1.2.5_2.0.47。

二、安装和配置

  1. 安装J2sdk_1.4.2_04、tomcat_5.0.19、apache_2.0.47,并设置相应的环境变量;

  2. 把连接器mod_jk_1.2.5_2.0.47.dll拷贝到D:/Apache/modules/下;

  3. 打开d:/Apache/conf下的httpd.conf:   
   <1> 查找"DirectoryIndex"指令行,在index.html后添加index.jsp  
   <2> 查找"AddDefaultCharset"指令行,把其中的ISO-8859-1改为GB2312或UTF-8
   <3> 在"### Section 3: Virtual Hosts"之前添加:
      LoadModule jk_module modules/mod_jk_1.2.5_2.0.47.dll
      JkWorkersFile "D:/Tomcat/conf/workers.properties"
      JkLogFile "D:/Tomcat/logs/mod_jk2.log"
      #指定需要转交给Tomcat处理的访问请求
      JkMount /servlet/* ajp13
      JkMount /manager/* ajp13
      JkMount /manager ajp13
      JkMount /admin/* ajp13
      JkMount /admin ajp13
      JkMount /balancer/* ajp13
      JkMount /balancer ajp13
      JkMount /*.jsp ajp13
    提示:若要想恢复httpd.conf中最初默认的配置,只需把httpd.default.conf文件的全部内容拷贝到httpd.conf即可。

  4. 在d:/Tomcat/conf下新建一个workers.properties文件 .内容如下:
   #####--begin--######## 
    workers.tomcat_home=d:/Tomcat  #让mod_jk模块知道Tomcat
    workers.java_home=d:/jdk1.4.2      #让mod_jk模块知道j2sdk
    ps=/
    worker.list=ajp13                    #mod_jk模块工作时使用的协议版本
    worker.ajp13.port=8009           #所要访问的端口(与第5步中tomcat要加载的JK模块的监听端口一致)
    worker.ajp13.host=localhost     #所要连接的主机名
    worker.ajp13.type=ajp13         #类型
    worker.ajp13.lbfactor=1          #代理数
   ######---end---#######

  5. 令tomcat在启动时加载JK模块。如果tomcat里面的server.xml已经包含着AJP1.3项,不用修改,否则需添加:
   <Connector port="8009"
    enableLookups="false" redirectPort="8443" debug="0"
    protocol="AJP/1.3" />

  6. 设置虚拟主机
   将d:/Apache/conf下的httpd.conf中相应部分修改如下
   <VirtualHost  localhost>
    ServerAdmin 
okjohn@sohu.com  
    DocumentRoot  "D:/Tomcat/webapps/ROOT"
    ServerName  localhost
    ErrorLog  logs/robornet_home_log.txt
    CustomLog  logs/robornet_Custom_log.txt  common
    #定义webapps下的子目录的别名(访问路径)
    Alias /jsp-examples "d:/Tomcat/webapps/jsp-examples"
    Alias /servlets-examples "d:/Tomcat/webapps/servlets-examples"
    Alias /tomcat-docs "d:/Tomcat/webapps/tomcat-docs"
    Alias /webdav "d:/Tomcat/webapps/webdav"
   </VirtualHost> 

  7. 重新启动Tomcat和Apache。如果有必要,先重启计算机。

三、项目配置

  在以上的配置中,把JSP文件存于d:/Tomcat/webapps/ROOT/目录下、类文件存于d:/Tomcat/webapps/ROOT/WEB-INF/classes/ 目录下就可以访问了,如果"d:/project1"为项目的根目录(java类或javabean的类文件存放在d:/project1/WEB-INF/classes/目录下),为调试方便也可以把虚拟主机和虚拟路径设到该目录下。操作为:

  1. 将d:/Apache/conf下的httpd.conf中相应部分修改如下(此时虚拟目录为d:/project1):
 
   <VirtualHost  localhost>       #localhost为本机,也可用本机ip,如:192.168.0.3
    ServerAdmin 
okjohn@sohu.com       #管理员的mail地址
    DocumentRoot  "d:/"        #项目组根目录(项目的上级目录)d:/
    ServerName  localhost       #服务名,也可设为192.168.0.3,若本机器有域名,设为域名
    ErrorLog  logs/robornet_home_log.txt      #错误日志
    CustomLog  logs/robornet_Custom_log.txt  common  #访问日志
   </VirtualHost>

  2. 然后设置Tomcat以支持该项目。打开d:/Tomcat/conf/server.xml文件,在"</Host>"之前,"</Context>"之后添加:

   <Context path="/project1" docBase="d:/project1" debug="0" reloadable="true" crossContext="true"/>
   
   * 注意:path的取值要与项目的名称一致(尽管tomcat无此要求,但是为了apache能够知道该路径,path应为服务器上的目录名),否则,需要在上一步的虚拟主机定义中把该路径定义为别名,使其等价于对应的服务器目录的绝对路径。

  3. 重新启动Tomcat和Apache。如果有必要,先重启计算机。

阅读更多
个人分类: 30 SERVER
上一篇JSP学习日记(三) JDBC数据库操作
下一篇Java网络编程入门学习
想对作者说点什么? 我来说一句

SSH框架整合

2018年06月18日 22.9MB 下载

Spring+Hibernate整合.doc

2011年06月29日 1.69MB 下载

S2SH整合 S2SH整合

2018年04月15日 47.14MB 下载

springdm整合hibernater

2011年07月18日 70KB 下载

Tomcat6+IIS6+jdk1.6整合

2010年09月16日 116KB 下载

没有更多推荐了,返回首页

关闭
关闭