Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。Apache成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。 ( T: ?& j" \* }& J) [ ~& e+ O 6 `5 {$ g9 z% E' ?6 f. H- u) V 几乎所有的Linux发布都安装Apache作为默认配置。SuSE7.1甚至预安装有包括各种高级模块选项的Apache,如PHP3,mod_perl和LDAP等等。用户会惊奇地发现系统安装成功就会有一个功能强大的Web服务器可供选择。虽然安装Apache并不是非常简单,但是如果有具有新的特性或安全补丁的Apache发布,则下载源代码包并编译新的Apache是值得的。 - g8 a" n( B+ T3 | ? , T) ]6 g, a+ D' ~9 x* m Apache不但具有庞大的用户群基础,并且有丰富的配置使用文档。Apache提供服务器端对脚本技术的支持,比如Perl、PHP等,Apache结合使用Apache JServ可以实现对java servlets及JSP的支持。Apache的很多模块实现安全方面的防护:如mod_auth提供对对服务器上数据进行适当的保护,而SSL模块则用来保护服务器和客户端之间的通信安全。 : F$ Y: D5 P+ [ ! _+ K1 J7 Q/ o; C) t* X( p3 Q% Y
下面我们再介绍一下Tomcat服务器软件,Tomcat是Sun和Apache合作做出来的JSPServer,支持Servlet2.2及JSP1.1等版本。笔者建议大家使用Tomcat,而且Tomcat未来将会取代JServ,成为Apache主要的Servlet&JSPEngine。Tomcat在设计上是以独立的Server执行,而不像Jserv是附在Apache中,这样就更可以发挥在servlet中,非HttpServlet的能力。Tomcat是Java程序,所以只要有JDK就可以使用,不需要考虑操作系统平台。 7 ?' g9 L) U8 }& v! m! s, n 6 }8 q( D' u: x/ R 作为WEB服务器扩展的Tomcat服务器有一些问题需要说明: . n( g7 m$ Z# B: X; N - H7 l3 t. d$ j9 O. p% q
当处理静态页面时,Tomcat不如Apache迅速。 8 j7 j% ^* ?/ I% b: [ Tomcat不象Apache一样可配置。 ! j$ j9 ?7 U: G! [
Tomcat不象Apache一样强壮。 % T( R4 C% C% \% ?2 t ; r6 Q7 r P1 C. A: L) d 基于以上原因,一个现实的网站使用一个Apache作为Web服务器,为网站的静态页面请求提供服务;并使用Tomcat服务器作为一个Servlet/JSP插件,显示网站的动态页面。 9 R3 K5 A R7 H/ r4 M
( e O( [$ O- w1 Y1 n. O+ {. b
采用apache->tomcat这样的结构才具有更特出的优点,主要体现在具有更好的可扩展性和安全性。这种类型的站点的主要特点是每一个页面都可能是动态生成的,但这些数据中主要部分还是静态的(比如,各类图像GIF、JPG、PNG,流式媒体等),这种结构的优点是兼有可扩展性和安全性。 5 K0 N. { G+ B% [* j- _9 e3 U x
6 q/ o V! D0 \8 D4 ^( N 下面以solairs8为例,免费下载Solaris版的Apache1.3.27,Tomcat4.1.12来说明安装配置WEB服务软件apache和应用服务软件tomcat(包括JDK),其它平台可以类比。 @: \ f) ~/ ^' t6 r$ y
]7 }5 \; K6 v# k* c6 q, y0 U
注意:下载的Apache、Tomcat的版本与操作系统的类型有关。 $ Q3 {9 y6 i$ E " p: D0 S- ^* B0 M& n
一、应用环境 * z }" U8 {5 j1 I
操作系统为Solaris8,应用环境为Java1.3(假定安装在/usr/java1.3目录下)、perl5.6(假定安装在/usr/local/bin目录下)和gzip(假定安装在/usr/local/bin目录下)。 0 y+ W% W3 m% y' f " Q% n* l/ V" ~9 h& T
二、软件包的下载、编译与安装 & A; k- T0 @9 F2 V/ x0 X5 k) h5 O 1、下载地址 / y, l2 K2 P" @; }
4 e1 M. ]& q0 O' \- [( D
在http://www.apache.org可下载Apache源代码软件包apache_1.3.27.tar.gz。 g) C4 O6 ^: ^- ^
在http://jakarta.apache.org/builds/tomcat/release/v4.1.12/src/可下载Tomcat源代码软件包jakarta-tomcat-4.1.12-src.tar.gz。 " R4 r# Z) z! J
在http://jakarta.apache.org/builds ... elease/v4.1.12/bin/可下载已编译的Tomcat应用软件包jakarta-tomcat-4.1.12.tar.gz。 1 f l/ w! B: q+ X 7 Q% N @/ @8 z+ } 2、编译与安装 & D7 T3 f# s, X4 w
" i* g0 u" M8 ^; d, z 假设各软件包已下载到当前的某个工作目录(如:/home/tmp)下,Apache和Tomcat将安装在/home目录下。在当前目录我们可以进行如下操作。 . l' u' z- g5 R; ^: I1 r5 e- s
, m3 E. p ]& B# I! }- a 1)编译和安装Apache应用服务 + o; Z. t/ _! F- y M & k) @8 j0 U* [' W
①解包 ( U2 H: k# h+ c( g
* m7 U3 M# X8 W9 W0 W8 m $/usr/local/bin/gzip-dc./apache_1.3.27.tar.gz|tarxf- $ Z6 b- ]% U9 P, u* Z; H
7 w! b3 z, q% q k% g8 D ②编译 0 R! @: {- Q5 A. A( ?% s. }
( t3 p% n2 i. u" P i: c
$cd apache_1.3.27 6 h* q/ J2 N: c4 e6 O M
$./configure--prefix=/home/apache-1.3.27 ) w/ N4 l) |+ u0 P, }& N --with-perl=/usr/local/bin/perl--enable-module=so S3 w# I, Y# f8 n& {# w
: l5 g3 [9 k/ U: ~! m 假设perl的解释命令安装在/usr/local/bin目录下,Apache服务安装在/home/apache-1.3.27目录下。 , w4 s8 a8 ~, N- U8 D' D- v4 }
8 i) T0 o" x7 \% `* R( q
$make & `; l1 b2 a, }0 p! U M5 Z : N0 j9 h( K/ p/ [
③安装 ( G I' W1 |% c9 H- k ( u8 Z: J- F2 R w $su 0 M& m- J5 A( X* V0 ]2 v
#make install 4 n m5 H! s" d# n / G1 c/ J" W( | P! Z 2)编译与安装mod_jk插件 5 c0 z, F0 I+ S8 w* d3 N+ j * `7 w$ H+ W% L0 L" w5 D' i ①解包 4 \- v/ O. @& v: h1 n1 d
2 W9 }0 H& m" q" p- R) k $/usr/local/bin/gzip-dcjakarta-tomcat-4.1.12-src.tar.gz|tarxf- 8 i1 g3 K! s6 W- V2 { + w" {6 j" O8 ?8 y
②编译 ! ^$ b4 t3 [+ K0 t9 M0 j( Z4 e& T
( N. ?' i0 e- v
$cd jakarta-tomcat-4.1.12-src/src/native/apache1.3 5 n$ M% i8 ]1 h. U4 r2 M
$/home/apache-1.3.27/bin/apxs-omod_jk.so-D SOLARIS-I../jk-I/ 3 A, v4 _1 Y5 g' R
usr/java1.3/include-I/usr/java1.3/include/solaris-lposix4-c*.c../jk/*.c 6 {& L' d+ A0 ^+ X
, V. a0 G5 Z- K- b+ D1 l9 {
假定Java安装在/usr/java1.3目录下。 3 T! d9 z$ `" ~" N$ `5 k4 i