始创于2000年 股票代码:831685
咨询热线:0371-60135900 注册有礼 登录
  • 挂牌上市企业
  • 60秒人工响应
  • 99.99%连通率
  • 7*24h人工
  • 故障100倍补偿
您的位置: 网站首页 > 帮助中心>文章内容

整合apache和tomcat构建Web服务器 (1)

发布时间:  2012/7/31 19:40:55

  linux是最常用的web服务器,本节我们将通过整合apache和tomcat构建一个java/jsp运行平台,详细介绍web服务器的搭建过程。
  一、  apache与tomcat整合的必要性
  Apache是最流行的Web服务器,开放源代码,支持跨平台的应用(可以运行在几乎所有的Linux、Unix、Windows系统平台上),尤其对Linux的支持相当完美。
  apache的优点有:
  l 功能强大,apache自带了很多功能模块,可根据需求编译自己需要的模块。
  l 配置简单,apache的配置文件非常简单,通过简单的配置可实现强大功能。
  l 速度飞快,apache处理静态页面文件效率非常高,可以应对大并发和高负荷访问请求。
  l 性能稳定,apache在高负荷请求下性能表现卓越,执行效率非常高。
  但是apache也有自身的缺点:
  l 只支持静态网页,对于jsp、php等动态网页不支持
  l Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,因此,不太适合于多处理器环境。
  Tomcat是Sun和Apache合作做出来的JSPServer,有如下优点:
  l 支持Servlet和JSP,可以很好的处理动态网页。
  l 跨平台性好:Tomcat是Java程序,所以只要有JDK就可以使用,不需要考虑操作系统平台。
  但是,tomcat也有自身缺点:
  l 处理静态页面效率不高:Tomcat本身可以做为Web Server,但是tomcat在处理静态页面时没有Apache迅速。
  l 可配置性不强:tomcat不像Apache一样配置简单,稳定、强壮。
  综上所述,通过相互的整合刚好弥补了各自的缺点,通过整合可以实现:
  l 客户端请求静态页面时,由Apache服务器响应请求。
  l 客户端请求动态页面时,则是Tomcat服务器响应请求。
  l 通过apache信息过滤,实现网站动、静页面分离,保证了应用的可扩展性和安全性。
  既然要让Apache和Tomcat协调工作,就必需有一个连接器把它们联系起来,这就是下面要提到的Connector,下个小节具体讲述Connector的选择和使用。
  二、 Apache和Tomcat连接器
  Apache是模块化的web服务器,这意味着核心中只包含实现最基本功能的模块。扩展功能可以作为模块动态加载来实现。为了让apache和tomcat协调工作,开源爱好者们开发出了很多可以利用的模块,在Apache2.2版本之前,一般有两个模块可供选择:mod_jk2和mod_jk,mod_jk2模块是比较早的一种连接器,在动、静页面过滤上可以使用正则表达式,因此使用配置灵活,但是mod_jk2模块现在已经没有开发人员支持了,版本更新也就此停止。继承jk2模块的是mod_jk模块,mod_jk模块支持Apache 1.x和2.X系列版本,现在一般都使用mod_jk做Apache和Tomcat的连接器。
  在Apache2.2版本以后,又出现了两种连接器可供选择,那就是http-proxy和proxy-ajp模块,apache的proxy(代理)模块可以实现双向代理,功能非常强大,从连接器的实现原理看,用http-proxy模块实现也是很自然的事情,只需打开tomcat的http功能,然后用apache的proxy代理功能将动态请求交给tomcat处理,而静态数据交给apache自身就可以了。proxy-ajp模块是专门为tomcat整合所开发的,通过ajp协议专门代理对tomcat的请求。根据官方的测试,proxy-ajp的执行效率要比http-proxy高,因此在Apache2.2以后的版本,用proxy-ajp模块作为apache和tomcat的连接器是个不错的选择。
  需要说明的是,这些连接功能的实现,都是通过在apache中加载相应的功能模块实现,比如上面提到的mod_jk、mod_jk2、proxy-ajp模块,都要事先通过源码编译出对应的模块,然后通过apache配置文件动态加载,实现连接器功能。这点也是apache的优势所在。
  在下面的讲述中,我们将重点讲述mod_jk作为连接器的安装配置与实现。
  三、 Apache与tomcat以及JK模块的安装
  下面以Red Hat Enterprise Linux Server release 5操作系统为例,详细介绍apache+tomcat+jk的安装过程。
  1.安装apache
  Apache 目前有几种主要版本,包括1.3.x、2.0.x以及2.2.x等等,在 1.3.x以前的版本中通常取名以apache开头,2.x以后版本则用httpd开头来命名。
  apache的官方地址为http://httpd.apache.org/,这里以源码的方式进行安装,我们下载的版本是Apache2.0.59,下载后的压缩包文件为httpd-2.0.59.tar.gz。
  下面是具体的编译安装过程:
  [root@webserver ~]#tar -zxvf  httpd-2.0.59.tar.gz
  [root@webserver ~]#cd httpd-2.0.59
  [root@webserver ~]#./configure --prefix=/usr/local/apache2 \
  --enable-modules=most \
  --enable-mods-shared=all \
  --enable-so \
  [root@webserver ~]#make
  [root@webserver ~]#make install
  Apache安装步骤以及选项的含义已经在第五章有详细的介绍,这里不在详述,这里我们设定apache的安装路径为/usr/local/apache2,“--enable-modules=most”表示将大部分模块静态编译到httpd二进制文件中,“--enable-mods-shared=all”表示动态加载所有模块,如果去掉-shared话,是静态加载所有模块。
  2.安装tomcat
  Tomcat的官方地址http://jakarta.apache.org/ ,这里以二进制方式安装,我们只需下载对应的二进制版本即可,这里使用的版本是tomcat-5.0.30,下载后的压缩包文件为jakarta-tomcat-5.0.30.tar.gz,把此安装包放到/usr/local目录下,通过解压即可完成tomcat的安装。
  基本步骤如下:
  [root@webserver local]# tar -zxvf jakarta-tomcat-5.0.30.tar.gz
  [root@webserver local]#mv jakarta-tomcat-5.0.30  tomcat5.0.30
  由于解压后的目录名字太长,不易操作,因此可以直接将解压后的目录重命名适合记忆的名字,这里我们将jakarta-tomcat-5.0.30重命名为tomcat5.0.30,软件名称加上软件版本的格式便于记忆。
  3.安装JDK
  在tomcat运行环境下,JDK是必不可少的软件,因为tomcat只是一个Servlet/JSP容器,底层的操作都需要JDK来完成。
  JDK的安装也非常简单,只需到http://java.sun.com/下载对应的JDK即可,这里我们下载的版本是JDK1.6,对应的文件为jdk-6u7-linux-i586.bin,下载时将所需软件包文件保存在/usr/local目录下,安装步骤如下:
  [root@webserver ~]#cd  /usr/local
  [root@webserver local]#chmod 755 jdk-6u7-linux-i586.bin
  [root@webserver local]#./jdk-6u7-linux-i586.bin
  然后根据提示输入“yes”,程序会自动完成安装,安装完毕,会在/usr/local/下产生一个 jdk1.6.0_07目录,这个就是JDK的程序目录了。
  [root@localhost local]# /usr/local/jdk1.6.0_07/bin/java -version
  java version "1.6.0_07"
  Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
  Java HotSpot(TM) Server VM (build 10.0-b23, mixed mode)
  从上面输出可以看出,JDK在我们的linux下运行正常。并且版本为1.6.0_07。
  4.安装JK模块
  为了更灵活的使用mod_jk连接器,这里我们采用源码方式编译出所需要的JK模块,JK的源码可以从这个地址去下载,http://archive.apache.org/dist/jakarta/tomcat-connectors/jk/,但是不保证此连接永久有效,这里采用的JK版本为jk-1.2.15。
  下载后的JK源码压缩包文件为jakarta-tomcat-connectors-current-src.tar.gz,这里也将此压缩包放到/usr/local下,具体安装步骤如下:
  [root@webserver ~]# cd /usr/local/
  [root@webserver local]# tar xzvf jakarta-tomcat-connectors-1.2.15-src.tar.gz
  [root@webserver local]# cd jakarta-tomcat-connectors-1.2.15-src/jk/native
  [root@webserver native]#chmod 755 buildconf.sh
  [root@webserver native]# ./buildconf.sh
  [root@webserver native]#./configure \ --with-apxs=/usr/local/apache2/bin/apxs  #这里指定的是apache安装目录中apxs的位置
  [root@webserver native]# make
  [root@webserver native]# make install
  [root@webserver native]# cd apache-2.0
  [root@webserver native]#ll mod_jk.so
  -rwxr-xr-x 1 root root 477305 Oct  9 08:49 mod_jk.so
  可以看到有mod_jk.so文件生成,这就是我们需要的JK连接器,默认情况下JK模块会自动安装到/usr/local/apache2/modules目录下,如果没有自动安装到此目录,手动拷贝此文件到modules目录即可。
  四、 apache与tomcat整合配置
  本节详细讲述apache和tomcat整合的详细配置过程,这里假定web服务器的IP地址为192.168.60.198,测试的jsp程序放置在/webdata/www目录下,如果没有此目录,需要首先创建这个目录,因为在下面配置过程中,会陆续用到/webdata/www这个路径。
  1.创建Tomcat workers
  Tomcat worker是一个服务于web server、等待执行servlet/JSP的Tomcat实例,创建tomcat workers需要增加3个配置文件,分别是Tomcat workers配置文件workers.properties,URL映射文件uriworkermap.properties和JK模块日志输出文件mod_jk.log,mod_jk.log文件会在apache启动时自动创建,这里只需创建前两个文件即可。
  (1)tomcat workers配置文件
  定义Tomcat workers的方法是在apache的conf目录下编写一个名为“workers.properties”的属性文件,使其作为apache的插件来发挥作用,下面讲述workers.properties配置说明。
  worker.list用来定义Workers列表,当apache启动时,workers.properties作为插件将初始化出现在worker.list列表中的workers。
  定义worker类型的格式:
  worker.worker名字.type=
  例如:
  定义一个名为“tomcat12”的worker,其使用ajp12协议与tomcat 进程通讯:
  worker.tomcat12.type=ajp12
  定义一个名为“tomcat13”的worker,其使用ajp13协议与tomcat 进程通讯:
  worker.remote.type=ajp13
  定义一个名为“tomcatjni”的worker,其使用JNI的方式与tomcat 进程通讯
  worker.tomcatjni.type=jni
  定义一个名为“tomcatloadbalancer”的worker,作为对多个tomcat进程的负载平衡使用:
  worker.tomcatloadbalancer.type=lb
  设置worker属性的格式为:
  worker.worker名字.属性=
  这里只说明ajp13协议支持的几个常用属性:
  l Host:监听ajp13请求的的tomcat worker主机地址
  l Port:tomcat worker主机监听的端口。默认情况下tomcat在ajp13协议中使用的端口为8009。
  l lbfactor:当tomcat用作负载均衡时,此属性被使用,表示此tomcat worker节点的负载均衡权值。
  下面是我们的workers.properties文件内容:
  [root@localhost ~]#vi /usr/local/apache2/conf/workers.properties
  worker.list=tomcat1
  worker.tomcat1.port=8009
  worker.tomcat1.host=localhost
  worker.tomcat1.type=ajp13
  worker.tomcat1.lbfactor=1
  (2)URL过滤规则文件uriworkermap.properties
  也就是URI 映射文件,用来指定哪些 URL 由 Tomcat 处理,也可以直接在 httpd.conf 中配置这些 URI,但是独立这些配置的好处是 JK 模块会定期更新该文件的内容,使得我们修改配置的时候无需重新启动 Apache 服务器。
  下面是我们的一个映射文件的内容:
  [root@localhost ~]#vi  /usr/local/apache2/conf/uriworkermap.properties
  /*=tomcat1
  !/*.jpg=tomcat1
  !/*.gif=tomcat1
  !/*.png=tomcat1
  !/*.bmp=tomcat1
  !/*.html=tomcat1
  !/*.htm=tomcat1
  !/*.swf=tomcat1
  !/*.css= tomcat1
  !/*.js= tomcat1
  在上面的配置文件中,“/*=tomcat1”表示将所有的请求都交给tomcat1来处理,而这个“tomcat1”就是我们在workers.properties文件中由worker.list指定的。这里的“/”是个相对路径,表示存放网页的根目录,这

亿恩科技地址(ADD):郑州市黄河路129号天一大厦608室 邮编(ZIP):450008 传真(FAX):0371-60123888
   联系:亿恩小凡
   QQ:89317007
   电话:0371-63322206


本文出自:亿恩科技【www.enkj.com】

服务器租用/服务器托管中国五强!虚拟主机域名注册顶级提供商!15年品质保障!--亿恩科技[ENKJ.COM]

  • 您可能在找
  • 亿恩北京公司:
  • 经营性ICP/ISP证:京B2-20150015
  • 亿恩郑州公司:
  • 经营性ICP/ISP/IDC证:豫B1.B2-20060070
  • 亿恩南昌公司:
  • 经营性ICP/ISP证:赣B2-20080012
  • 服务器/云主机 24小时售后服务电话:0371-60135900
  • 虚拟主机/智能建站 24小时售后服务电话:0371-60135900
  • 专注服务器托管17年
    扫扫关注-微信公众号
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 亿恩科技 版权所有  地址:郑州市高新区翠竹街1号总部企业基地亿恩大厦  法律顾问:河南亚太人律师事务所郝建锋、杜慧月律师   京公网安备41019702002023号
      0
     
     
     
     

    0371-60135900
    7*24小时客服服务热线