扫一扫
关注微信公众号

Apache服务器之JSP架构篇
2007-09-24   网络

本文主要讨论在红帽企业 Linux AS4的环境中使用Apache和 Tomcat服务器软件来架构JSP网站。
要让Apache和Tomcat联合工作,还必需有一个连接器(Connector)把它们联系起来,目前大致上有JK1.x,JK2,mod_webapp三种connector可以使用。jk 是mod_jserv的替代者,它是Tomcat-Apache插件,处理Tomcat和Apache之间的通信。JK使用比较广泛,JK2是JK1.x的改进,比较新。这三种Connector的配置方法大相径庭,另外,Tomcat是用Java写的,所以我们的操作系统必须有JDK或JRE。

红帽企业 Linux AS4的已经内置的RPM(Red Hat Package Manager)版的Apache服务器,版本为2.0.52(如图1);由于我们要在 Apache中整合tomcat,必须要下载Apache的tar.gz文件格式的源代码版,重新编译安装,编译采用允许动态加载模块的方式,主要是为了加载mod_jk2这个整合模块。因为默认的已经编译好的RPM版的Apache不能加载mod_jk2模块。


""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>
图1


在这里我们在下载Apache的源代码版(Linux)为2.0.54版本(如图2),下载Tomcat 5.5.9的tar.gz文件格式的源代码版(如图3), Apache 和 Tomcat整合的连接器在本文中我们选用JK2,下载的版本为2.0.4(如图4);由于Tomcat需要java的运行环境,下载J2SE 5的升级3版即JDK 1.5.0_03(如图5)。

将这4个下载文件拷贝到/ghq目录,下面我们就可以进行安装了。


""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>
图2


""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>

图3



""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>
图4



""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>
图5

软件的安装与配置

1、Apache服务器的安装

打开一个终端,进入到ghq目录下,解压httpd-2.0.54.tar.gz,然后编译安装。
[root@www ~]#cd /ghq (进入ghq目录)
[root@www ghq]#tar –zxvf httpd-2.0.54.tar.gz (解开.tar.gz 压缩文件)
[root@www ghq]#cd httpd-2.0.54 (切换到解开目录下)
[root@www httpd-2.0.54]#./configure –prefix=/ghq/apache2 –-enable-mods-shared=all –-enable-so (执行组态配置文件,编译的Apache服务器软件安装在/ghq/apache2目录下,允许动态加载so模块,选择所需要的所有模块,如图6所示)


""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>
图6
[root@www httpd-2.0.54]#make (编译Apache服务器的相关文件,如图7所示)


""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>
图7
[root@www httpd-2.0.54]#make install (将Apache服务器安装到红帽企业 Linux AS4系统,如图8所示)


""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>
图8

2、Tomcat独立运行环境的安装与配置

① 安装JDK

[root@www ~]#cd /ghq (进入ghq目录)
[root@www ghq]#chmod 711 jdk-1_5_0-03-Linux-i586-1.bin(使JDK具有执行权)
[root@www ghq]#./ jdk-1_5_0-03-Linux-i586-1.bin(运行JDK程序,如图9和图10所示)


""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>
图9


""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>

图10

JDK被安装到/ghq/jdk1.5.0_03目录下。

② 安装Tomcat软件

[root@www ~]#cd /ghq (进入ghq目录)
[root@www ghq]#tar –zxvf Jakarta-tomcat-5.5.9.tar.gz (解开Tomcat压缩文件,如图11所示)


""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>

图11

[root@www ghq]#cd Jakarta-tomcat-5.5.9 (进入tomcat目录)
[root@www Jakarta-tomcat-5.5.9]#ls (查看tomcat目录下的文件目录系统)

③ 设置环境变量

[root@www Jakarta-tomcat-5.5.9]#vi ~/.bash_profile
设置好Java和Tomcat运行的目录和路径,以及环境变量,如下图12所示,然后保存此文件。


""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>
图12

[root@www Jakarta-tomcat-5.5.9]. ~/.bash_profile(执行此文件,让设置有效)
[root@www Jakarta-tomcat-5.5.9]java –version (查看目前Java运行的版本,如图13所示)


""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>
图13


3、整合Apache 和 Tomcat 服务器软件

① 连接器的解压与配置

[root@www ghq]#tar–zxvf Jakarta-tomcat-connectors-jk2-src-
current.tar.gz (解开connectors压缩文件,如图14所示)



""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>

图14



[root@www ghq]#cd Jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2(进入连接器目录中)
[root@www native2]#./configure --with-apxs2=/ghq/apache2/bin/apxs --with-apr-lib=/ghq/apache2/bin --with-tomcat-559=/ghq/tomcat5.5.9 --with-java-home=/ghq/jdk1.5.0_03 --with-jni(执行组态配置文件,编译apache 、Tomcat和JDK的运行目录和路径,如图15所示)


""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>
图15


② Makefile文件的修改与编译,mod_jk2模块so文件的生成

[root@www native2]# cd server/apache2 (进入server目录中apache2目录)
[root@www apache2]# vi Makefile 文件如下图16所示,然后保存此文件。




""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>
图16


[root@www native2]# make (编译connectors,产生mod_jk2.so文件,如下图17所示。)



""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>

图17



将编译生成的两个文件(jkjni.so、mod_jk2.so)拷贝到/ghq/apache的modules目录,这两个文件就是负责Tomcat和Apache通信的,如下图18、19所示。



""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>

图18





""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>


图19

Apache和Tomcat配置与测试

1、Apache的httpd.conf和workers2.properties文件的配置

打开/ghq/apache2/conf目录下的httpd.conf文件,首先将监听端口listen修改为9000,在LoadModule后添加一行,LoadModule jk2_module modules/mod_jk2.so,如图20所示,然后保存此文件。


""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>
图20

在/ghq/apache2/conf目录下的创建workers2.properties文件,主要是在Apache服务器里添加Tomcat的虚拟目录,如图21所示。


""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>
图21


2、Tomcat的jk2.properties配置

[root@www native2]# cd /ghq/Jakarta-tomcat-5.5.9/conf
[root@www conf]# vi jk2.properties
对Tomcat的jk2.properties进行配置,只需要修改一行,找到shm.file,去掉该行的注释符,并将路径改为/ghq/apache2/logs/jk2.shm,如图22所示。


""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>
图22

3、启动Apache和Tomcat服务并进行测试

① 启动Tomcat服务并进行测试

[root@www conf]# cd /ghq/Jakarta-tomcat-5.5.9/bin
[root@www bin]# ./startup.sh
如下图23所示。


""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>
图23

启动Tomcat独立的运行环境,用8080端口进行测试,如图24所示。


""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>
图24


②启动Apache服务并进行测试

[root@www bin]# cd /ghq/apache2/bin
[root@www bin]# ./apachectl start
如下图25所示。


""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>
图25

启动Apache的运行环境,用9000端口进行测试,如图26所示。


""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>
图26

③ Apache+Tomcat整合测试

在这里我们就以Tomcat本身带的jsp-examples中的date.jsp例子来测试。首先我们用Tomcat(8080)来测试,如下图27所示,说明Tomcat服务器能解析JSP文件;然后将date.jsp文件拷贝到/ghq/apache2/htdocs目录中,用Apache(9000)来测试,如图28、29所示,说明Apache服务器单独不能解析JSP文件;最后采用Apache+Tomcat整合来测试date.jsp例子,如图30所示,说明整合在一起可以解析JSP文件。


""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>
图27



""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>
图28



""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>
图29


""screen.width*0.5) {this.resized=true; this.width=screen.width*0.5;}" border=0>
图30

至此Apache+Tomcat整合环境架构步骤就已全部完成。

热词搜索:

上一篇:Apache服务器学习之PHP应用
下一篇:Xitami Web服务器,比Apache更快捷

分享到: 收藏