ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:27.49KB ,
资源ID:11385512      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11385512.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(apache整合tomcat.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

apache整合tomcat.docx

1、apache整合tomcat整合apache和tomcat构建Web服务器2011-05-12 08:52:29标签:web服务器整合tomcat休闲apache原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。linux是最常用的web服务器,本节我们将通过整合apache和tomcat构建一个java/jsp运行平台,详细介绍web服务器的搭建过程。一、 apache与tomcat整合的必要性Apache是最流行的Web服务器,开放源代码,支持跨平台的应用(可以运行在几乎所有的Linux、Unix、Windows系统平台上),尤其对Linu

2、x的支持相当完美。apache的优点有: 功能强大,apache自带了很多功能模块,可根据需求编译自己需要的模块。 配置简单,apache的配置文件非常简单,通过简单的配置可实现强大功能。 速度飞快,apache处理静态页面文件效率非常高,可以应对大并发和高负荷访问请求。 性能稳定,apache在高负荷请求下性能表现卓越,执行效率非常高。但是apache也有自身的缺点: 只支持静态网页,对于jsp、php等动态网页不支持 Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,因此,不太适合于多处理器环境。Tomcat是Sun和Apache合作做出来的JSPServer,有如下优点:

3、 支持Servlet和JSP,可以很好的处理动态网页。 跨平台性好:Tomcat是Java程序,所以只要有JDK就可以使用,不需要考虑操作系统平台。但是,tomcat也有自身缺点: 处理静态页面效率不高:Tomcat本身可以做为Web Server,但是tomcat在处理静态页面时没有Apache迅速。 可配置性不强:tomcat不像Apache一样配置简单,稳定、强壮。综上所述,通过相互的整合刚好弥补了各自的缺点,通过整合可以实现: 客户端请求静态页面时,由Apache服务器响应请求。 客户端请求动态页面时,则是Tomcat服务器响应请求。 通过apache信息过滤,实现网站动、静页面分离,

4、保证了应用的可扩展性和安全性。既然要让Apache和Tomcat协调工作,就必需有一个连接器把它们联系起来,这就是下面要提到的Connector,下个小节具体讲述Connector的选择和使用。二、Apache和Tomcat连接器Apache是模块化的web服务器,这意味着核心中只包含实现最基本功能的模块。扩展功能可以作为模块动态加载来实现。为了让apache和tomcat协调工作,开源爱好者们开发出了很多可以利用的模块,在Apache2.2版本之前,一般有两个模块可供选择:mod_jk2和mod_jk,mod_jk2模块是比较早的一种连接器,在动、静页面过滤上可以使用正则表达式,因此使用配置

5、灵活,但是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处理,而静态数据交

6、给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的优势所在。在下面的讲述中,

7、我们将重点讲述mod_jk作为连接器的安装配置与实现。三、Apache与tomcat以及JK模块的安装下面以Red Hat Enterprise Linux Server release 5操作系统为例,详细介绍apache+tomcat+jk的安装过程。1安装apacheApache 目前有几种主要版本,包括1.3.x、2.0.x以及2.2.x等等,在 1.3.x以前的版本中通常取名以apache开头,2.x以后版本则用httpd开头来命名。apache的官方地址为http:/httpd.apache.org/,这里以源码的方式进行安装,我们下载的版本是Apache2.0.59,下载后的压缩

8、包文件为httpd-2.0.59.tar.gz。下面是具体的编译安装过程:rootwebserver #tar -zxvf httpd-2.0.59.tar.gzrootwebserver #cd httpd-2.0.59rootwebserver #./configure -prefix=/usr/local/apache2 -enable-modules=most -enable-mods-shared=all -enable-so rootwebserver #makerootwebserver #make installApache安装步骤以及选项的含义已经在第五章有详细的介绍,这里不

9、在详述,这里我们设定apache的安装路径为/usr/local/apache2,“-enable-modules=most”表示将大部分模块静态编译到httpd二进制文件中,“-enable-mods-shared=all”表示动态加载所有模块,如果去掉-shared话,是静态加载所有模块。2安装tomcatTomcat的官方地址http:/jakarta.apache.org/,这里以二进制方式安装,我们只需下载对应的二进制版本即可,这里使用的版本是tomcat-5.0.30,下载后的压缩包文件为jakarta-tomcat-5.0.30.tar.gz,把此安装包放到/usr/local目

10、录下,通过解压即可完成tomcat的安装。基本步骤如下:rootwebserver local# tar -zxvf jakarta-tomcat-5.0.30.tar.gzrootwebserver local#mv jakarta-tomcat-5.0.30 tomcat5.0.30由于解压后的目录名字太长,不易操作,因此可以直接将解压后的目录重命名适合记忆的名字,这里我们将jakarta-tomcat-5.0.30重命名为tomcat5.0.30,软件名称加上软件版本的格式便于记忆。3安装JDK在tomcat运行环境下,JDK是必不可少的软件,因为tomcat只是一个Servlet/JS

11、P容器,底层的操作都需要JDK来完成。JDK的安装也非常简单,只需到rootwebserver #cd /usr/localrootwebserver local#chmod 755 jdk-6u7-linux-i586.binrootwebserver local#./jdk-6u7-linux-i586.bin然后根据提示输入“yes”,程序会自动完成安装,安装完毕,会在/usr/local/下产生一个 jdk1.6.0_07目录,这个就是JDK的程序目录了。rootlocalhost local# /usr/local/jdk1.6.0_07/bin/java -versionjava

12、version 1.6.0_07Java(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/,但是不保证此连接永久有效

13、,这里采用的JK版本为jk-1.2.15。下载后的JK源码压缩包文件为jakarta-tomcat-connectors-current-src.tar.gz,这里也将此压缩包放到/usr/local下,具体安装步骤如下:rootwebserver # cd /usr/local/rootwebserver local# tar xzvf jakarta-tomcat-connectors-1.2.15-src.tar.gzrootwebserver local# cd jakarta-tomcat-connectors-1.2.15-src/jk/nativerootwebserver na

14、tive#chmod 755 buildconf.shrootwebserver native# ./buildconf.shrootwebserver native#./configure -with-apxs=/usr/local/apache2/bin/apxs #这里指定的是apache安装目录中apxs的位置rootwebserver native# makerootwebserver native# make installrootwebserver native# cd apache-2.0rootwebserver native#ll mod_jk.so-rwxr-xr-x 1

15、 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/

16、www这个路径。1创建Tomcat workersTomcat 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目录下编写一

17、个名为“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,其使

18、用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协议支持的几个常用属性: Host:监听ajp13请求的的tomcat worker主机地址 Port:t

19、omcat worker主机监听的端口。默认情况下tomcat在ajp13协议中使用的端口为8009。 lbfactor:当tomcat用作负载均衡时,此属性被使用,表示此tomcat worker节点的负载均衡权值。下面是我们的workers.properties文件内容:rootlocalhost #vi /usr/local/apache2/conf/workers.propertiesworker.list=tomcat1worker.tomcat1.port=8009worker.tomcat1.host=localhostworker.tomcat1.type=ajp13worke

20、r.tomcat1.lbfactor=1(2)URL过滤规则文件uriworkermap.properties也就是URI 映射文件,用来指定哪些 URL 由 Tomcat 处理,也可以直接在 httpd.conf 中配置这些 URI,但是独立这些配置的好处是 JK 模块会定期更新该文件的内容,使得我们修改配置的时候无需重新启动 Apache 服务器。下面是我们的一个映射文件的内容:rootlocalhost #vi /usr/local/apache2/conf/uriworkermap.properties/*=tomcat1!/*.jpg=tomcat1!/*.gif=tomcat1!/

21、*.png=tomcat1!/*.bmp=tomcat1!/*.html=tomcat1!/*.htm=tomcat1!/*.swf=tomcat1!/*.css= tomcat1!/*.js= tomcat1在上面的配置文件中,“/*=tomcat1”表示将所有的请求都交给tomcat1来处理,而这个“tomcat1”就是我们在workers.properties文件中由worker.list指定的。这里的“/”是个相对路径,表示存放网页的根目录,这里是上面假定的/webdata/www目录。“!/*.jpg=tomcat1”则表示在根目录下,以“*.jpg”结尾的文件都不由JK进行处理,其

22、它设置含义类似,也就是让apache处理图片、js文件、css文件以及静态html网页文件。特别注意,这里有个先后顺序的问题,JK模块在处理网页根目录文件的时候,会首先过滤掉不让自己处理的设定,剩下的设定自己全部处理。例如上面的设定中,JK模块会首先在/webdata/www目录过滤掉所有图片、flash、js文件、css文件和静态网页,将剩下的文件类型自己全部处理。2Apache的配置(1)apache的目录结构上面我们通过源码方式把apache安装到了/usr/local/apache2下,详细的目录结构如表8.1所示:表8.1目录名称目录作用binApache二进制程序及服务程序目录li

23、b库文件目录conf主配置文件目录logs日志文件目录htdocs默认web应用根目录cgi-bin默认的cgi目录modules动态加载模块目录,上面生成的JK模块,就放在了这个目录下。manualApache使用文档目录manMan帮助文件目录error默认的错误应答文件目录include包含头文件的目录iconsApache图标文件目录(2)apache的配置文件 /usr/local/apache2/conf/httpd.conf(apache主要配置文件)httpd.conf是包含若干指令的纯文本文件,配置文件的每一行包含一个指令,指令是不区分大小写的,但是指令的参数却对大小写比较敏

24、感,“#”开头的行被视为注解并被忽略,但是,注解不能出现在指令的后边。配置文件中的指令对整个web服务器都是有效的。 /usr/local/apache2/bin/apachectl (apache启动/关闭程序)可以通过“/usr/local/apache2/bin/apachectl start/stop/restart”的方式启动/关闭/重启apache进程。apachectl其实是个shell脚本,它可以自动检测httpd.conf的指令设定,让apache在最优的方式下启动。 /usr/local/apache2/bin/httpdhttpd是一个启动apache的二进制文件。 /u

25、sr/local/apache2/modulesApache是模块化的web服务器,所有编译的模块默认都会放到这个目录下,然后可以在httpd.conf文件中指定模块位置,动态加载! /usr/local/apache2/logs/access_log/usr/local/apache2/logs/error_log这两个分别为apache的访问日志文件和错误日志文件,通过监测这两个文件,我们可以了解apache的运行状态。(3)httpd.conf基本设定httpd.conf配置文件有3个部分组成,分别是:全局变量、配置主服务器、配置虚拟主机。下面我们详解讲述下/usr/local/apac

26、he2/conf/httpd.conf文件各个指令的含义。rootwebserver #vi /usr/local/apache2/conf/httpd.conf全局变量配置部分ServerRoot /usr/local/apache2ServerRoot用于指定守护进程httpd的运行目录, httpd在启动之后自动将进程的当前目录切换到这个指定的目录下,可以使用相对路径和绝对路径。PidFile logs/httpd.pidPidFile指定的文件将记录httpd守护进程的进程号,由于httpd能自动复制其自身,因此apache启动后,系统中就有多个httpd进程,但只有一个进程为最初启动

27、的进程,它为其他进程的父进程,对父进程发送信号将影响所有的httpd进程。Timeout 300Timeout用来定义客户端和服务器端程序连接的超时间隔,单位为秒,超过这个时间间隔,服务器将断开与客户端的连接。KeepAlive OnKeepAlive用来定义是否允许用户建立永久连接,On为允许建立永久连接,Off表示拒绝用户建立永久连接,例如,要打开一个含有很多图片的页面,完全可以建立一个tcp连接将所有信息从服务器传到客户端即可,而没有必要对每个图片都建立一个tcp连接。此选项建议设置为On。MaxKeepAliveRequests 100MaxKeepAliveRequests用来定义一

28、个tcp连接可以进行HTTP请求的最大次数,设置为0代表不限制请求次数,这个选项与上面的KeepAlive相互关联,当KeepAlive设定为On,这个设置开始起作用。KeepAliveTimeout 15KeepAliveTimeout用来限定一次连接中最后一次请求完成后延时等待的时间,如果超过了这个等待时间,服务器就断开连接。ServerLimit300StartServers 5MinSpareServers 5MaxSpareServers 20MaxClients 300MaxRequestsPerChild 2000StartServers 2MaxClients 150MinSp

29、areThreads 25MaxSpareThreads 75ThreadsPerChild 25MaxRequestsPerChild 0上面的两段指令其实是对web服务器的使用资源进行的设置,apache可以运行在prefork和worker两种模式下,可以通过/usr/local/apache2/bin/httpd l来确定当前apache运行在哪种模式,在编译apache时,如果指定“-with-mpm=MPM”参数,那么apache默认运行在prefork模式下,如果指定的是“-with-mpm=worker”参数,那么默认运行在worker模式下。如果没有做任何模式指定,那么apa

30、che默认也运行在prefork模式下。prefork采用预派生子进程方式,用单独的子进程来处理不同的请求,进程之间彼此独立。 StartServers表示在启动apache时,就自动启动的进程数目。 MinSpareServers设置了最小的空闲进程数,这样可以不必在请求到来时再产生新的进程,从而减小了系统开销以增加性能。 MaxSpareServers设置了最大的空闲进程数,如果空闲进程数大于这个值,apache会自动关闭这些多余进程,如果这个值设置的比小MinSpareServers,则Apache会自动把其调整为 MinSpareServers+1。 MaxRequestsPerChild设置了每个子进程可处理的最大请求数,也就是一个进程能够提供的最大传输次数,当一个进程的请求超过此数目时,程序连接自动关闭。0意味着无限,即子进程永不销毁。这里我们设置为2000,已经基本能满足中小型网站的需要。 MaxClients设定Apache可以同时处理的请求数目。是对Ap

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1