孕味 发表于 2015-7-30 14:08:31

第一篇、Apache和Tomcat的整合

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

  通常情况下分为三大块 :
  ★ Web server :通常情况下由 Apache Http Server、 IBM Http Server、IIS(很少用到)组成,可以是一个或者多个 ,企业应用程序走WebServer访问,防止将应用EAR包、War
  包暴漏在外网环境,增加系统的安全性,同时可用来分发用户请求(在集群的环境下),解析静态文件(例如js,img,css等文件)降低应用程序的压力(在很多应用程序中访问静态文件走的是系统Action
  来获取,这样子达不到降压的效果,WebServer组件会将其当作为动态资源去获取).
  ★ App Server :   通常为我们的web容器 Tomcat、Weblogic、WebSphere、Jboss 等 ,应用程序运行在web容器中,应用服务器一般都有多个,其和WebServer的链接必定是通过企业内网
  如果是外网链接那么这样的架构也就失去了意义 .
  ★ DB Server : 这个一看就知道是什么了,数据库服务器 .
  生产环境下,外网用户通过WebServer层来访问系统,在安全性要求不是非常高的情况下,内网用户可以直接访问AppServer,一般情况下企业员工也不会对企业应用进行攻击,如果存在这样的人,那
  就要从自身素质考虑的 嘿嘿...
2、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.
#
  将修改如下
  #

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

  如果正确则命令行窗口会一闪而过。
  通过以上的配置将apache的工作文件目录修改到了d:\deployment文件夹下,因此在d盘下创建对应的目录,并建立一个index.html文件。apache 默认访问文件目录下index.html文件,在httpd.conf
  文件中设置 :
  #
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#

    DirectoryIndex index.html

  建立目录如下:

  重启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

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

  
  
  该段配置作用如下:

  在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进行一个快速入手.
  
页: [1]
查看完整版本: 第一篇、Apache和Tomcat的整合