第一篇、Apache和Tomcat的整合

一、web架构

         首先上图,解释web通用架构css

 

      一般状况下分为三大块 :html

    ★ Web server :  一般状况下由 Apache Http Server  、 IBM Http Server  、IIS(不多用到)  组成,能够是一个或者多个 ,企业应用程序走WebServer访问,防止将应用EAR包、Warweb

包暴漏在外网环境,增长系统的安全性,同时可用来分发用户请求(在集群的环境下),解析静态文件(例如js,img,css等文件)下降应用程序的压力(在不少应用程序中访问静态文件走的是系统Action数据库

来获取,这样子达不到降压的效果,WebServer组件会将其看成为动态资源去获取).apache

           ★ App Server :   一般为咱们的web容器 Tomcat、Weblogic、WebSphere、Jboss 等 ,应用程序运行在web容器中,应用服务器通常都有多个,其和WebServer的连接一定是经过企业内网json

若是是外网连接那么这样的架构也就失去了意义 .windows

           ★ DB Server : 这个一看就知道是什么了,数据库服务器 .浏览器

       生产环境下,外网用户经过WebServer层来访问系统,在安全性要求不是很是高的状况下,内网用户能够直接访问AppServer,通常状况下企业员工也不会对企业应用进行攻击,若是存在这样的人,那tomcat

就要从自身素质考虑的 嘿嘿...安全

二、Apache + Tomcat

      Ⅰ说明

           Apache Http Server 为apache下opensource项目,是应用比较普遍的Web Server组件,能够到官网下载安装http://httpd.apache.org/

      

      Ⅱapache的安装

           实验环境在window下直接双击安装程序进行安装,在Linux下请参考官网指南 http://httpd.apache.org/docs/2.2/install.html 写的很详细.

       

         Next 到下面的界面

       

        Server Name 须要配置正确,使用计算机名(保证能ping通) 如图 :

       

        填写完毕后继续Next

      

       选择自定义安装后Next

      

        设置安装路径 不要有中文或者空格

      

       开始安装Install

      

       安装完成之后在屏幕右下角出现:

     

      点击该图标

     

      表示当前apache在运行.

      开始菜单增长了apache的信息

    

 

     打开浏览器输入 http://localhost 获得以下结果:

   

      至此 apache 安装成功 ! 耶...

    

     Ⅲ   Apache Http Server 配置

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

       

       将DocumentRoot修改以下:

    #DocumentRoot "D:/ software/Apache2.2/htdocs"

    DocumentRoot "d:/deployment"

     继续往下修改,找到

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

将<Directory "D:/software/Apache2.2/htdocs">修改以下

#<Directory "D:/software/Apache2.2/htdocs">
<Directory "D:/deployment">

      修改完毕之后测试一下修改配置文件是否正确

     

     若是正确则命令行窗口会一闪而过。

     经过以上的配置将apache的工做文件目录修改到了d:\deployment文件夹下,所以在d盘下建立对应的目录,并创建一个index.html文件。apache 默认访问文件目录下index.html文件,在httpd.conf

文件中设置 : 

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>

     创建目录以下: 

     

     重启apache

     

     访问 http://localhost

     

 

    Ⅳ tomcat的安装

      tomcat的安装应该是每一个开发人员都会的,这里使用的是解压版的tomcat7 

      

    Ⅴ 整合

            准备工做都已完毕,整合开始    

            apache 只能解析静态的文件(例如刚访问的index.html,可是遇到index.jsp就没法解析),若是遇到动态的文件就须要交给web容器来解析(这里是tomcat)。

            那么如何将动态资源的解析交给tomcat的 ??? 

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

            操做步骤:

              1. 加入mod_jk模块 

                      该模块名称为: mod_jk-1.2.31-httpd-2.2.3.so,将其加入到apache安装目录下modules下 

                      

                      

 

 

 

              2. 配置解析表达式

 

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

 

LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so
JKWorkersFile conf/workers.properties
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 /*WEB-INF ajp13
JkMount /*.action ajp13
JkMount /servlet/* ajp13
JkMount /*.jsp ajp13
JkMount /*.do ajp13
JkMount /*.action ajp13
JkMount /*.json ajp13
JkMount /WebDemo/HelloWorld 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:/deployment下,复制好后将其中的WEB-INF文件夹删除(这部分的内容将经过JkMount表达式来传递)

              操做完成之后从新访问http://localhost/WebDemo/ 获得(该页面是直接访问d:/deployment目录下的静态文件)

               

               点击连接获得(tomcat解析返回的) :

               

 

              至此,整合完毕.

              运行图以下: 

              

                 注意须要网络管理员屏蔽8080端口.  

 

下一篇将具体来描述一下建立的maven工程,对maven进行一个快速入手.

相关文章
相关标签/搜索