快速整合apache2.2与tomcat5.5

快速整合apache2.2与tomcat5.5

Linux AS4下快速整合Apache2.2和Tomcat5.5
李高峰
lushanlee@hotamil.com
2007年元月9日
一、        目标:
在linux下,可以通过apache来访问tomcat下的应用。
二、        预备工作:
1.        安装和配置好JDK1.5、Tomcat5.5等系统软件。
2.        Tomcat5.5下创建一个测试应用,[本文用的是作者自建应用beauty]。
3.        下载 httpd-2.2.3.tar.gz
4.        下载 apr-1.2.7.tar.gz
5.        下载 apr-util-1.2.7.tar.gz
三、        过程:
a)        解包
1.        假定这些安装包都放在/data目录下
2.        逐个解压这些压缩包:
1.        tar -zxvf  apr-1.2.7.tar.gz
2.        tar –zxvf  apr-util-1.2.7.tar.gz
3.        tar –zxvf  httpd-2.2.3.tar.gz
3.        生成三个文件目录:apr-1.2.7  apr-util-1.2.7 和 httpd-2.2.3
4.        创建一个目录http 。mkdir http
b)        安装apr-1.2.7
1.        [root@Phwtest data]# cd apr-1.2.7
2.        [root@Phwtest apr-1.2.7]# ./configure  --prefix=/data/http/apr
3.        [root@Phwtest apr-1.2.7]# make
4.        [root@Phwtest apr-1.2.7]# make install
5.        这样apr就被安装在 /data/httpd下了。
c)        安装 apr-util

1.        [root@Phwtest data]# cd apr-util-1.2.7.
2.        [root@Phwtest apr-util-1.2.7]# ./configure  --prefix=/data/http/apr-util --with-apr=/data/http/apr
3.        [root@Phwtest apr-util-1.2.7]# make
4.        [root@Phwtest apr-util-1.2.7]# make install
5.        这样apr-util就被安装在 /data/httpd下了
d)        安装apache2.2.3

1.        [root@Phwtest data]# cd httpd-2.2.3
2.        [root@Phwtest httpd-2.2.3]# ./configure --prefix=/data/http/apache --enable-mods-shared=all --enable-module=most --enable-proxy --enable-proxy-ajp --enable-proxy-balancer  --with-apr=/data/http/apr --with-apr-util=/data/http/apr-util --enable-so
3.        [root@Phwtest httpd-2.2.3]# make
4.        [root@Phwtest httpd-2.2.3]# make install
5.        这样httpd-2.2.3就被安装在 /data/httpd下了
e)        配置APACHE
1.        打开配置文件:
[root@Phwtest data]# cd http/apache/conf
[root@Phwtest conf]# vi httpd.conf
2.        找到 / Virtual hosts
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
3.        去掉Include前的# ,在配置文件末尾加上:
ProxyPass / ajp://127.0.0.1:8009/
ProxyPassReverse / ajp://127.0.0.1:8009/
后保存退出。
4.        修改虚拟主机配置文件,设置虚拟目录。
[root@Phwtest extra]# cd /data/http/apache/conf/extra
[root@Phwtest extra]# vi httpd-vhosts.conf
<VirtualHost *:80>
    ServerAdmin localhost@test.com
    DocumentRoot /data/apache-tomcat-5.5.17/webapps/beauty
    ServerName localhost
    ServerAlias localhost
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
保存退出。
f)        启动APACHE
[root@Phwtest conf]# cd /data/http/apache/bin
[root@Phwtest bin]# ./apachectl start
g)        测试
1.        访问http://xxxx:8080/beauty/
2.        访问http://xxxx/beauty/
3.        如果两个都正常,则配置成功。
四、        说明:
1.        安装APACHE时的配置参数一定要全,否则生成proxy 模块会有问题。
2.        推荐采用APACHE的默认端口80,否则配置可能失败。
ProxyPass / ajp://127.0.0.1:8009/
ProxyPassReverse / ajp://127.0.0.1:8009/
看到很多人都这样整合,有个问题想请教,请问*.html 或 *.gif *.jpg是apache处理还是tomcat处理?
如果是tomcat处理,这样的整合还有意义吗?
这样就看你的静态目录地址了
如果你的APACHE用的是其他的端口比如9000
那你在修改虚拟主机的时候要修改相应的配置
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /data/apache-tomcat-5.5.17/webapps/sso
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
改为
<VirtualHost *:9000>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /data/apache-tomcat-5.5.17/webapps/sso
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>