apache整合tomcat

–>

为什么要用apache来整合tomcat呢?首先,是因为apache是静态服务器,tomcat是动态服务器,二者相辅相成,才能完美构建一个web服务器;其次,用apache作为中心服务器器,将请求分发到多个tomcat,解决负载均衡,实现服务器的稳定性。那么,也有人会说,ngnix整合tomcat不就可以了,而且也很流行。我想说,实现一件事情可以有多种途径,不能只认定一条道,而要熟悉不同路子,相互比较,确定最合适的方案,也就是性价比等各方面最佳的途径。

apache整合tomcat需要三件东西,第一,apache;第二,tomcat;第三,apache和tomcat之间的桥,mo_jk.so。现在我们一个一个介绍。

第一,apache。

1、自己下载apache。这里不再赘述。

2、配置apache。

找到安装目录 conf/httpd.conf 文件并打开,搜索documentRoot字段

   将DocumentRoot修改如下:

    #DocumentRoot “D:/ software/Apache2.2/htdocs”

    DocumentRoot “d:/wwwroot”

     继续往下修改,找到

#
# This should be changed to whatever you set DocumentRoot to.
#

将<Directory “D:/software/Apache2.2/htdocs”>修改如下

#<Directory “D:/software/Apache2.2/htdocs”>
<Directory “D:/wwwroot”>

3、在D:/wwwroot目录下放一个html,作为测试。


第二,tomcat。自行下载,并测试启动。


第三,整合。

apache有一个叫mod_jk的模块,通过配置表示式后将请求通过mod_jk 然后传递给tomcat 。

1、加入mod_jk模块
该模块名称为: mod_jk.so,将其加入到apache安装目录下modules下 。

(注意: mod_jk.so这个文件一定要和apache版本一致)

2、配置解析表达式

打开httpd.conf文件,在文件末尾追加如下内容: 

 

LoadModule jk_module modules/mod_jk.so  #加载mod_jk模块
JKWorkersFile conf/workers.properties   #对mod_jk模块进行属性配置,该文件需要手动创建
JkLogFile logs/mod_jk.log
<VirtualHost *>

#创建虚拟文件目录

DirectoryIndex index.html index.htm index.jsp index.action
ErrorLog logs/error_log.txt
CustomLog logs/access_log.txt common

#JKMount表达式,标识符合改路径的url将转发给tomcat解析

JkMount /*WEB-INF ajp13
JkMount /*.action ajp13
JkMount /servlet/* ajp13
JkMount /*.jsp ajp13
JkMount /*.do ajp13
JkMount /*.action ajp13
JkMount /*.json ajp13
JkMount /WebDemo ajp13   #为了测试,这里这样写 
</VirtualHost>

在conf目录下建立worders.properties文件,其内容如下

workers.tomcat_home=D:/software/apache-tomcat-7.0.53-windows-x86/apache-tomcat-7.0.53
ps=/
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13

                  √  workers.tomcat_home:用来指定tomcat的位置

     √  worker.list :指定工作的的web容器映射

                  √  worker.ajp13.host : 访问host

                  √  worker.ajp13.type: 访问协议

在tomcat安装目录conf/server.xml文件中指定了8009端口访问的协议

         

3. 在tomcat中部署应用,通过apache来访问  

                  通过maven创建了一个web工程 打包为WebDemo,放入tomcat的webapps目录下,启动tomcat并重启apache,访问 http://localhost/WebDemo 得到

             

               出错了!  这是正常的,此时还需要将webapps下的WebDemo文件夹复制到d:/wwwroot下,复制好后将其中的WEB-INF文件夹删除(这部分的内容将通过JkMount表达式来传递)

              操作完成以后重新访问http://localhost/WebDemo/ 得到(该页面是直接访问d:/wwwroot目录下的静态文件)

至此,整合完毕.

              运行图如下: 

              


本文来源 互联网收集,文章内容系作者个人观点,不代表 本站 对观点赞同或支持。如需转载,请注明文章来源,如您发现有涉嫌抄袭侵权的内容,请联系本站核实处理。

© 版权声明

相关文章