Windows下Apache整合Tomcat成功实例

 为什么要用Apache整合Tomcat?原因有两点:
    
    1、Apache处理静态页面,如htm,html更快
    2、也是最重要的一点,可以使用Apache做软件负载均衡,这样处理大并发访问时,就可以通过负载均衡来达到横向扩展的目的,更经济更方便
    
    在网上查了一下Apache整合Tomcat的方法
    
    【下载】
    我的环境是:windows XP,因此去Apache官方网站下载时需要下载x86版本的apache,tomcat,以及mod_jk.so,它们的下载地址如下:
    
    Apache HTTP Server (httpd) 2.2.22 : http://httpd.apache.org/download.cgi#apache22
    
    Tomcat 6.0.35 : http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-6/v6.0.35/bin/apache-tomcat-6.0.35-windows-x86.zip
    
    Apache Tomcat整合模块mod_jk.so : http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-connectors/jk/binaries/windows/tomcat-connectors-1.2.32-windows-i386-httpd-2.2.x.zip
    
    其中mod_jk.so的版本必须和Apache、你自己的操作系统版本一致,如果你用的是其他版本,请访问以下地址下载
    http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-connectors/jk/binaries/windows/
    
    【安装】
    将Apache安装,Tomcat解压
    tomcat-connectors-1.2.32-windows-i386-httpd-2.2.x.zip压缩文件解压,将其中的mod_jk.so文件放至 "Apache安装文件夹\modules"文件夹中
    
    编辑"Apache文件夹/conf/httpd.conf"文件,将其中的"Listen 80"改为你自己需要监听的端口,相比各位的80、8080端口很可能都是被其他Web服务器占用了吧?
    我将端口设置为8091
    
    Tomcat的服务监听端口改法估计很多人都知道了,我设置为8092端口
    
    【配置】
    在"Tomcat安装文件夹/conf"文件夹中创建workers.properties文件,内容如下:
workers.tomcat_home=D:\soft\Cluster\apache-tomcat-6.0.35\ #让mod_jk模块知道Tomcat的位置
workers.java_home=D:\Program Files\Java\jre6 #让mod_jk模块知道jre的位置
ps=\ #一般不需要修改
worker.list=ajp13 #模块版本,一般不需要修改
worker.ajp13.port=8009 #工作端口,见下文
worker.ajp13.host=localhost #本机,若上面的Apache主机不为localhost,作相应修改
worker.ajp13.type=ajp13 #类型,一般不需要修改
worker.ajp13.lbfactor=1 #代理数,不用修改
    其中worker.ajp13.port的端口号,需要在"Tomcat安装文件夹/conf/server.xml"中查询类似
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    这样的配置,关键protocol="AJP/1.3",其中port就是端口号,一般来说不会被占用
    
    在"Tomcat安装文件夹/conf/server.xml"最后<Host>节点内部添加如下配置
    <Context path="" docBase="D:\soft\Cluster\apache-tomcat-6.0.35\webapps\examples" reloadable="true" crossContext="true"/>
    其中docBase就是将Tomcat访问的根目录设置为你自定义的目录,我们做测试的时候用Tomcat自带的Examples最好不过了,其中又有htm又有jsp,刚好满足这次的测试要求
    
    在"Apache文件夹/conf/httpd.conf"文件最后添加如下配置
LoadModule jk_module modules\mod_jk.so
#此处mod_jk的文件为你下载的文件
JkWorkersFile "D:\soft\Cluster\apache-tomcat-6.0.35\conf\workers.properties"
#指定tomcat监听配置文件地址
JkLogFile "D:\soft\Cluster\apache-tomcat-6.0.35\logs\mod_jk2.log"
#指定日志存放位置
JkLogLevel info


   #设置虚拟主机
<VirtualHost localhost>
ServerAdmin localhost
DocumentRoot D:\soft\Cluster\apache-tomcat-6.0.35\webapps\examples
<Directory "D:\soft\Cluster\apache-tomcat-6.0.35\webapps\examples">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
#您的站点项目所在路径,应与tomcat中的目录设置相同,据说以上两个必须同时设置才可以生效,没有试过不同的时候会有什么情况
ServerName localhost
DirectoryIndex index.html index.htm index.jsp
ErrorLog logs/shsc-error_log.txt
CustomLog logs/shsc-access_log.txt common
JkMount /servlet/* ajp13
#让Apache支持对servlet传送,用以Tomcat解析
JkMount /*.jsp ajp13
#让Apache支持对jsp传送,用以Tomcat解析
JkMount /*.do ajp13
#让Apache支持对.do传送,用以Tomcat解析
</VirtualHost>






【测试】
打开Tomcat
打开Apache
尝试访问http://localhost:8091和http://localhost:8092,如果两个页面一样,说明我们已经成功了一半


以后如果需要外部客户端访问,只会访问到http://localhost:8091这个地址,因为我们只需要通过Apache进行访问分发,Tomcat对外部而言是不可见的


访问http://localhost:8091/jsp/jsp2/el/functions.jsp?foo=JSP+2.0
这是Tomcat自带例子的一个访问地址,是一个典型的jsp页面,如果通过Apache的地址可以访问并打开这个地址,说明配置成功了

猜你喜欢

转载自blog.csdn.net/changqiao211sdn/article/details/79044736