博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows下Apache整合Tomcat成功实例
阅读量:5821 次
发布时间:2019-06-18

本文共 3260 字,大约阅读时间需要 10 分钟。

hot3.png

为什么要用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>
      是的,你没有看错,这个配置语法就是这么的。。。。不能理解,又是空格隔开又是XML的,不明白怎么解析的。
      其中也有DocumentRoot和Directory的配置,我们也配到和Tomcat一样吧
     
       【测试】
      打开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的地址可以访问并打开这个地址,说明配置成功了

转载于:https://my.oschina.net/baochanghong/blog/367310

你可能感兴趣的文章
【聚能聊有奖话题】Boring隧道掘进机完成首段挖掘,离未来交通还有多远?
查看>>
盘点物联网网关现有联网技术及应用场景
查看>>
考研太苦逼没坚持下来!看苑老师视频有点上头
查看>>
HCNA——RIP的路由汇总
查看>>
zabbix监控php状态(四)
查看>>
实战Django:小型CMS Part2
查看>>
原创]windows server 2012 AD架构试验系列 – 16更改DC计算机名
查看>>
统治世界的十大算法
查看>>
linux svn安装和配置
查看>>
SSH中调用另一action的方法(chain,redirect)
查看>>
数据库基础
查看>>
表格排序
查看>>
关于Android四大组件的学习总结
查看>>
java只能的round,ceil,floor方法的使用
查看>>
由于无法创建应用程序域,因此未能执行请求。错误: 0x80070002 系统找不到指定的文件...
查看>>
新开的博客,为自己祝贺一下
查看>>
【CQOI2011】放棋子
查看>>
采用JXL包进行EXCEL数据写入操作
查看>>
一周总结
查看>>
将txt文件转化为json进行操作
查看>>