Tomcat和Apache的集成
Connector的选择
选择合适的Connector对于性能、配置的方便性有很重要的影响,目前大致上有JK1。x, JK2, mod_webapp三种connector可以使用。 JK使用比较广泛。JK2是JK1.x的改进,比较新。但是不太容易配置,相关的文档也比较少。此外,JK可以支持其他Web服务器和tomcat的集成。 但mod_webapp不支持。 因此,目前JK1.x是最好的选择。
获得JK
使用二进制版本
如果你对手工编译源代码心有余悸,使用二进制版本也许是个明智的选择。你可以从http://apache。linuxforum。net/dist/jakarta/tomcat-connectors/jk/binaries/下载JK1.x的最新版本。
然而,不幸的是二进制版本的JK和Apache的版本是捆绑在一起的,如果你使用了比较新的Apache(比如httpd-2.0.29)的话,往往很难找到对应的二进制版本的JK。
手工编译源代码
对于不同的操作系统和Apache的版本,如果没有预编译好的JK,则需要进行手工编译。除了Linux以外,其他操作系统一般不会安装编译环境。这时你还需要安装编译器。典型的例子是在Solaris上安装GCC,或是在Windows上安装Visual C 。另外,通常Open Source的软件一般都是用GNU的autoconf、automake生成自动配置脚本和Makefile的,JK也不例外。除了Linux以外的Unix系统中的make不一定能够兼容这些脚本。 所以如果你碰到这些问题就需要安装gmake。下面以Solaris8为例说明如何安装配置编译环境:
在Solaris8中系统自带的make不能兼容automake产生的某些Makefile。
需要的软件包:
gcc-3.3-sol9-sparc-local.gz
make-3.80-sol8-sparc-local.tar.gz
所有需要的软件包都可以在www.sunfreeware.com上下载到。
解压缩:
代码:
$gunzip gcc-3.3-sol9-sparc-local.gz
$gunzip make-3.80-sol8-sparc-local.gz
用pkgadd安装,需要root权限:
代码:
#pkgadd -d gcc-3.3-sol9-sparc-local
#pkgadd -d make-3.80-sol8-sparc-local
用pkgadd安装后,通常gcc, make会被安装在/usr/local/bin目录下。这是需要让gmake
成为系统默认的make。检查PATH环境变量,确保/usr/local/bin目录的位置在Solaris8自带的make的bin之前:
代码:
$which make
/usr/ccs/bin/make
$echo $PATH
/usr/bin:/usr/ccs/bin:/usr/local/bin
如果发现gmake还不是系统默认的make,可以修改/etc/profile调整PATH。但有一种更简单有效的方法,在/usr/bin目录下建一个到/usr/local/bin/make的符号连接make,这样就能使gmake成为系统默认的make了:
代码:
# cd /usr/bin
# ln -s /usr/local/bin/make make
同样的技巧可以解决一些Perl脚本对perl解释器可执行文件路径引用的不正确。如某个perl脚本的头信息有#!/usr/local/bin/perl -w但Perl在系统上被安装在/usr/bin/目录下。这时需要在
/usr/local/bin/下建立一个到/usr/bin/perl的符号连接perl。
编译完JK后,把它安装到apache中去,执行:
代码:
# make install
如果不成功,可以手工把mod_jk.so拷贝到apache的modules目录下。
配置
在具体动手配置之前应该考虑一下你集成的目标:仅仅是简单的把某个subcontext由tomcat处理,还是更高层次的动态/静态内容整合?是否允许HTTPS的转发;是否要进行负载平衡?具体配置的复杂度会因你的集成目标不同而大相径庭。
选择合适的Connector对于性能、配置的方便性有很重要的影响,目前大致上有JK1。x, JK2, mod_webapp三种connector可以使用。 JK使用比较广泛。JK2是JK1.x的改进,比较新。但是不太容易配置,相关的文档也比较少。此外,JK可以支持其他Web服务器和tomcat的集成。 但mod_webapp不支持。 因此,目前JK1.x是最好的选择。
获得JK
使用二进制版本
如果你对手工编译源代码心有余悸,使用二进制版本也许是个明智的选择。你可以从http://apache。linuxforum。net/dist/jakarta/tomcat-connectors/jk/binaries/下载JK1.x的最新版本。
然而,不幸的是二进制版本的JK和Apache的版本是捆绑在一起的,如果你使用了比较新的Apache(比如httpd-2.0.29)的话,往往很难找到对应的二进制版本的JK。
手工编译源代码
对于不同的操作系统和Apache的版本,如果没有预编译好的JK,则需要进行手工编译。除了Linux以外,其他操作系统一般不会安装编译环境。这时你还需要安装编译器。典型的例子是在Solaris上安装GCC,或是在Windows上安装Visual C 。另外,通常Open Source的软件一般都是用GNU的autoconf、automake生成自动配置脚本和Makefile的,JK也不例外。除了Linux以外的Unix系统中的make不一定能够兼容这些脚本。 所以如果你碰到这些问题就需要安装gmake。下面以Solaris8为例说明如何安装配置编译环境:
在Solaris8中系统自带的make不能兼容automake产生的某些Makefile。
需要的软件包:
gcc-3.3-sol9-sparc-local.gz
make-3.80-sol8-sparc-local.tar.gz
所有需要的软件包都可以在www.sunfreeware.com上下载到。
解压缩:
代码:
$gunzip gcc-3.3-sol9-sparc-local.gz
$gunzip make-3.80-sol8-sparc-local.gz
用pkgadd安装,需要root权限:
代码:
#pkgadd -d gcc-3.3-sol9-sparc-local
#pkgadd -d make-3.80-sol8-sparc-local
用pkgadd安装后,通常gcc, make会被安装在/usr/local/bin目录下。这是需要让gmake
成为系统默认的make。检查PATH环境变量,确保/usr/local/bin目录的位置在Solaris8自带的make的bin之前:
代码:
$which make
/usr/ccs/bin/make
$echo $PATH
/usr/bin:/usr/ccs/bin:/usr/local/bin
如果发现gmake还不是系统默认的make,可以修改/etc/profile调整PATH。但有一种更简单有效的方法,在/usr/bin目录下建一个到/usr/local/bin/make的符号连接make,这样就能使gmake成为系统默认的make了:
代码:
# cd /usr/bin
# ln -s /usr/local/bin/make make
同样的技巧可以解决一些Perl脚本对perl解释器可执行文件路径引用的不正确。如某个perl脚本的头信息有#!/usr/local/bin/perl -w但Perl在系统上被安装在/usr/bin/目录下。这时需要在
/usr/local/bin/下建立一个到/usr/bin/perl的符号连接perl。
编译完JK后,把它安装到apache中去,执行:
代码:
# make install
如果不成功,可以手工把mod_jk.so拷贝到apache的modules目录下。
配置
在具体动手配置之前应该考虑一下你集成的目标:仅仅是简单的把某个subcontext由tomcat处理,还是更高层次的动态/静态内容整合?是否允许HTTPS的转发;是否要进行负载平衡?具体配置的复杂度会因你的集成目标不同而大相径庭。
顶(0)
踩(0)
- 最新评论