TA的每日心情 | 衰 2021-2-2 11:21 |
|---|
签到天数: 36 天 [LV.5]常住居民I
|
Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。Apache成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。 + ?3 A% W+ t/ Z1 T) w
' `+ k; P8 t( B- z 几乎所有的Linux发布都安装Apache作为默认配置。SuSE7.1甚至预安装有包括各种高级模块选项的Apache,如PHP3,mod_perl和LDAP等等。用户会惊奇地发现系统安装成功就会有一个功能强大的Web服务器可供选择。虽然安装Apache并不是非常简单,但是如果有具有新的特性或安全补丁的Apache发布,则下载源代码包并编译新的Apache是值得的。
6 o& _3 b/ |- h4 C0 J0 p, n% l3 M7 u
8 G, |' s$ l* w' S# D4 \6 ? Apache不但具有庞大的用户群基础,并且有丰富的配置使用文档。Apache提供服务器端对脚本技术的支持,比如Perl、PHP等,Apache结合使用Apache JServ可以实现对java servlets及JSP的支持。Apache的很多模块实现安全方面的防护:如mod_auth提供对对服务器上数据进行适当的保护,而SSL模块则用来保护服务器和客户端之间的通信安全。
$ s# d. n5 q/ }$ w V- ?
4 u3 F' l2 O8 B: Q 下面我们再介绍一下Tomcat服务器软件,Tomcat是Sun和Apache合作做出来的JSPServer,支持Servlet2.2及JSP1.1等版本。笔者建议大家使用Tomcat,而且Tomcat未来将会取代JServ,成为Apache主要的Servlet&JSPEngine。Tomcat在设计上是以独立的Server执行,而不像Jserv是附在Apache中,这样就更可以发挥在servlet中,非HttpServlet的能力。Tomcat是Java程序,所以只要有JDK就可以使用,不需要考虑操作系统平台。
- ?- u" H5 O" H( l8 r9 r : w) V& Z! o* d
作为WEB服务器扩展的Tomcat服务器有一些问题需要说明: $ @8 ^3 A$ O, }$ i+ ]
, ?3 x! U/ l3 ^7 D5 L
当处理静态页面时,Tomcat不如Apache迅速。 * r! A5 V- f' c( P) {5 ` t8 M
Tomcat不象Apache一样可配置。
. u+ q" S4 Z5 H5 v3 c Tomcat不象Apache一样强壮。
e9 c, N: y# f1 T/ ~
3 t: Y. N1 w5 J 基于以上原因,一个现实的网站使用一个Apache作为Web服务器,为网站的静态页面请求提供服务;并使用Tomcat服务器作为一个Servlet/JSP插件,显示网站的动态页面。
8 r7 C; F1 X9 C2 n8 l
' x: n( w) h r7 M; h( }$ r _ 采用apache->tomcat这样的结构才具有更特出的优点,主要体现在具有更好的可扩展性和安全性。这种类型的站点的主要特点是每一个页面都可能是动态生成的,但这些数据中主要部分还是静态的(比如,各类图像GIF、JPG、PNG,流式媒体等),这种结构的优点是兼有可扩展性和安全性。 ( Y5 }& n' `% U1 Y/ ?/ Z6 s) u+ S
, B9 M3 A; k/ G m$ o 下面以solairs8为例,免费下载Solaris版的Apache1.3.27,Tomcat4.1.12来说明安装配置WEB服务软件apache和应用服务软件tomcat(包括JDK),其它平台可以类比。 " @7 T( ~( v5 K% i
! n( F' _. h3 q: S1 o! l4 U0 _/ ?
注意:下载的Apache、Tomcat的版本与操作系统的类型有关。 ) u( Q3 g3 ^0 s- j2 U
7 k4 I) X0 h$ o t' {
一、应用环境
: U# v4 s( x' t 操作系统为Solaris8,应用环境为Java1.3(假定安装在/usr/java1.3目录下)、perl5.6(假定安装在/usr/local/bin目录下)和gzip(假定安装在/usr/local/bin目录下)。 6 W6 C4 `, G4 w
% {' p+ |0 i* g5 p0 Y6 Y4 N' B& ? 二、软件包的下载、编译与安装
' h3 g! P) w7 g8 k/ `" D% p 1、下载地址
2 L- |4 ?9 d1 r7 Z/ B5 g0 s- H* L 7 a! B, \- b- c, K; o
在http://www.apache.org可下载Apache源代码软件包apache_1.3.27.tar.gz。 3 m G" ?1 U! C' w% Y
在http://jakarta.apache.org/builds/tomcat/release/v4.1.12/src/可下载Tomcat源代码软件包jakarta-tomcat-4.1.12-src.tar.gz。
$ i& y3 \5 ?! S3 f 在http://jakarta.apache.org/builds ... elease/v4.1.12/bin/可下载已编译的Tomcat应用软件包jakarta-tomcat-4.1.12.tar.gz。 " c$ ?+ e! i) K/ s$ k5 ?
4 v- _4 E. Q; d1 r0 b* ^ 2、编译与安装
4 o/ @, a! }5 p5 ] ; R5 n) Y7 ~ m$ m0 T5 s
假设各软件包已下载到当前的某个工作目录(如:/home/tmp)下,Apache和Tomcat将安装在/home目录下。在当前目录我们可以进行如下操作。 . G7 x, i0 Q, C- T
$ n/ B3 E* Z h8 E 1)编译和安装Apache应用服务
+ ~' S/ o A. u4 ~. u& y & ?* y0 m5 Q0 K* w: b
①解包
% A' E* I( q4 ?/ v9 a- \, X+ q ; I0 R$ n2 F6 `8 m+ b I- c
$/usr/local/bin/gzip-dc./apache_1.3.27.tar.gz|tarxf- ; T3 L+ c* B8 v5 r( U, S% `
% ?& J4 V1 ?$ E/ y; Z3 ?) e% e0 [
②编译
* L3 n% N8 D5 {' u - a' F7 r0 N1 C" F) h- S+ K& Z T8 ]
$cd apache_1.3.27
/ @, V2 F+ U v8 s! ^+ j $./configure--prefix=/home/apache-1.3.27
* V. x. i% {! o0 K# T --with-perl=/usr/local/bin/perl--enable-module=so ' r/ O8 [) S7 G
. R9 N9 F* R7 [
假设perl的解释命令安装在/usr/local/bin目录下,Apache服务安装在/home/apache-1.3.27目录下。 0 n$ Q- i1 W2 J; u) L
" ?* N4 d" J! q9 C P $make ' D& v) }( x q; g9 O
* s2 d) j9 k! L" x- H- ^
③安装
/ L; q. q4 Z3 T X- m& \4 F! A
- b! O% f6 n5 \- `) B" j7 j$ a' J $su 5 C8 D" W1 ^% |
#make install
* I% N0 V! @8 k . k) {8 l; a6 P
2)编译与安装mod_jk插件
2 ^5 d0 Z: u$ b 7 Z( T: f. w. N" E: J
①解包 / j& R* ]) \/ j- x# w( R
7 K3 e' M6 {' x0 s $/usr/local/bin/gzip-dcjakarta-tomcat-4.1.12-src.tar.gz|tarxf- ( S0 |# X0 y) ], }9 d$ q( q
8 P. E0 P9 @" K. A# v- k ②编译
8 R. K0 R8 Q$ l4 r, v, C+ @( H 9 U% ~& i: z0 S
$cd jakarta-tomcat-4.1.12-src/src/native/apache1.3 4 p- g& M1 W/ u# E3 a* f
$/home/apache-1.3.27/bin/apxs-omod_jk.so-D SOLARIS-I../jk-I/
; L8 b, ~) I, H+ M* p" [! Z: H usr/java1.3/include-I/usr/java1.3/include/solaris-lposix4-c*.c../jk/*.c
, N8 W0 J( P( h$ Q
9 G& c2 Z B l( U 假定Java安装在/usr/java1.3目录下。 ' X U: j! U( @2 m
4 K+ m. h" @ ~
③安装
" U% P+ U' f, d# A" y
0 E% w# E% H) ^. ^' r- u8 \2 l $su
; ?; X: m% n/ a( r #/home/apache-1.3.27/bin/apxs-i-a-njk mod_jk.so * t5 @3 }8 b. ]5 b" A
cp mod_jk.so/home/apache-1.3.27/libexec/mod_jk.so # w; w" e! A% _5 t
chmod 755 /home/apache-1.3.27/libexec/mod_jk.so
" z7 M+ d9 R* x4 i4 | [activating module`jkin/home/apache-1.3.27/conf/httpd.conf] 6 Z+ ?( Y( E1 |1 ?
+ a* F+ H. N i- W 3)安装Tomcat服务 " a, Y1 P$ R) A( c5 G6 x+ Q* F/ u
9 w+ Y; D% v8 A6 O( J W
用超级用户身份把已编译的Tomcat4.1.12解包到/home目录下即可。
% a. ~# k! \ R# e7 K8 C 3 T* R/ v$ n- j/ E# ]6 O/ ^1 R
$su / Q6 L. p# K$ O0 E; \$ S
#/usr/local/bin/gzip-dcjakarta-tomcat-4.1.12.tar.gz|(cd/home;tarxf-) 7 G5 X" y4 ?; f. |( S$ v6 W
2 I5 n8 C5 n6 K2 g 3、参数配置
6 y" g( H" ?" @" M' \ 1 C3 [7 U" r ]" o- r# g
(1)配置Apache服务 $ n) s- j5 {/ C! M) a1 m3 k
% Y+ Q E: J) K1 M: c
用vi命令打开Apache的配置文件httpd.conf。 ( P6 Q7 B% K! I- n
% F3 y1 k9 j& z: M #cd /home/apache-1.3.27/conf ' U* g+ N# p- U4 G# f# P
#vi httpd.conf
, H) b% d% k* v8 a; z5 R: i ! t2 Q% R2 g# c; O3 ?' C6 H) J) H7 x
在末尾添加以下内容。 # {5 N8 Y; D+ p$ _7 M) {5 {
& }" ~$ R4 i( i; t9 ^ JkWorkersFile/home/jakarta-tomcat-4.1.12/conf/workers.properties
1 h. Z$ g8 R4 J' F. y2 C JkLogFile/home/apache-1.3.27/logs/mod_jk.log 0 i: ?+ ~( N% C" r) r
/ X8 P/ `# s9 c
注意:日志文件可根据具体情况调整。 7 o. }$ Q% o: E* `: w9 S& P
3 |3 A# l# U1 \! z( r2 n
JkLogLevelwarn
$ K; P: Z& K9 l/ i- z JkMount/*.jspajp13
& K' |6 h7 ~) c+ o JkMount/servlet/*.jspajp13
0 M8 c8 k6 Y0 s$ z/ a- \8 A
1 _: Q8 E* P( K8 P; H O( `. [ (2)配置Tomcat服务
& y, i( d5 c- M% V
. v! P; `: G# p* I 首先,修改server.xml文件。
4 z6 ]- S6 S) R9 a# f9 S
; c1 }* _6 \/ A U( H/ F 这里假定存放Apache的Web网页的根目录为/home/htdocs。 7 b9 M% h8 I0 t
* H1 d; m% f6 [ #cd /home/jakarta-tomcat-4.1.12/conf 3 s2 E) G/ g) P9 O* o, B1 O# U
#vi server.xml
' C" N" u; j- O, `4 P - {& j( G3 M# Y$ H
然后,在Connectors部分嵌入如下内容。
6 G- w& N+ c+ k- |' G5 c2 t 6 z: ]/ o5 g( q7 B9 L, H5 k% c
<ConnectorclassName="org.apache.tomcat.service. 1 u) K6 B: U1 K; V5 u. `8 m. R
PoolTcpConnector"><Parametername="handler" . e, U: W0 ~$ g p0 | J9 t! l
value="org.apache.tomcat.service.connector.Ajp 1 ]3 M; c8 M! j. |4 J
13ConnectionHandler"/> / P0 f! p) ]: J9 W0 O8 ^2 B
<Parametername="port"value="8007"/> 5 G2 c# L- E3 A) b$ a; B, G
</Connector>
# s% v, N' {; ~5 N/ e; b$ d! o % \, d- A, i$ q. T( i
接着,在SpecialWebapps部分嵌入如下内容。
V* `9 k5 F6 J; u, z; p, I 1 k) s" y; J$ Q* V) b$ F) W# [1 H9 Z
<Contextpath=""
8 r5 b4 D$ l8 k9 s# `0 g docBase="/home/htdocs"
7 Y+ z; e& U+ D# d" h debug="0"> 9 P1 y9 z, S& x) Z
</Context> ! A( P: ?0 \: B) n6 X- i% s
% C* p) }7 I4 b# l
修改workers.properties文件。
! X5 f- L4 _# C1 w . c! x: y5 h8 o( X0 n# Y; I# e* C
#vi workers.properties
( ^! r6 N- ?' Z4 k6 l6 i ...
) `2 ]# Y5 n8 U+ Q1 x workers.tomcat_home=/home/jakarta-tomcat-4.1.12
- S. f+ s- O W- p, y ... + ~; V* W* ]2 j) p$ ^9 `
workers.java_home=/usr/java1.3 # n$ e+ x7 E# ?9 {# ~
... ) ^' b% X% q; l
ps=/
7 J$ _4 d+ E* I3 D ...
/ {3 K9 _5 a9 L 0 c: R! Q) |6 j' @. V8 r
随后,修改Tomcat启动和关闭命令文件。 0 S) N& h4 Z- b. S, p
2 K" {# q# G3 t5 r9 y #cd ../bin
$ ]3 m7 u- O. ]. y6 g& G1 R5 A #vi startup.sh * T$ i7 x9 Y* [. }( v) z
/ O$ o) G1 v- l) _. P R2 w; [6 x+ ` 再在"BASEDIR=`dirname$0`"语句前嵌入如下内容。
8 f0 j$ P0 {! k m
/ N3 G4 C" f$ ~* s PATH=/usr/java1.3/bin PATH:. % H" C. \) ~7 \7 f
JAVA_HOME=/usr/java1.3 1 n( X2 y1 G8 ]7 t) v
TOMCAT_HOME=/home/jakarta-tomcat-4.1.12 - s& `% e2 j8 ]8 \' ~6 b( H
Export PATH JAVA_HOMETOMCAT_HOME d6 a! s$ Q" E
#vi shutdown.sh
6 A) }' Y6 O, l. ?. c2 ?
$ u) j6 |2 J5 G& v9 }3 G+ i 最后,在"BASEDIR=`dirname$0`"语句前嵌入如下内容。 8 M# x" C9 |2 G
" B; s: H+ G3 h1 V2 A) [
PATH=/usr/java1.3/bin PATH:. : y8 S/ u" B7 u! q, g
JAVA_HOME=/usr/java1.3
; p( M# _* a' r! D) |* k8 \0 j TOMCAT_HOME=/home/jakarta-tomcat-4.1.12 " X9 f% a. C1 G: X
Export PATH JAVA_HOMETOMCAT_HOME 1 A; S# {# o! d! L" j
+ Z& @; w8 m- `9 C8 p
至此,Apache和Tomcat服务器软件安装成功,上面是在UNIX(Solaris)平台下构建JSP网站的基本配置。Apache与Tomcat结合支持JSP动态网页开始是通过一个名为"mod_jserv"的插件来实现的,采用这种Apache/Jserv方式配置参数十分复杂,运行效率很低,而且对SSL(一种加密传输方式)的支持也不理想,因此Jakarta工作组新近开发了"mod_jk"插件,它很好地弥补了mod_jserv的缺点,而且能支持Apache以外的多种Web服务。关于这种Apache/Jk方式的实现原理,请参考有关资料。
: `# }+ Z [7 M' E f! G3 \0 _; u* X
三、UNIX或LIUNX环境下Web服务器的安全管理与维护
3 T6 w" I3 H. J1 A 1、Apache和Tomcat的启动和关闭 1 o- j2 K+ R5 d2 h3 M/ Y0 Q
#/home/apache-1.3.27/bin/apachectl start 启动
# m9 H6 `9 z1 d2 |& R1 m; a #/home/apache-1.3.27/bin/apachectl stop 关闭 5 U# @3 w; l& z' I$ }3 y4 c
#/home/jakarta-tomcat-4.1.12/bin/startup sh 启动 7 W+ E+ B- E" V+ L$ g4 t/ R
#/home/jakarta-tomcat-4.1.12/bin/shutdown sh 关闭
. K9 s( O J$ v. Q% D 5 x' D* A2 B8 N6 H# G* q' T
2、Apache和Tomcat的web服务器的安全管理
: Z: P9 Q) g/ T c: E i
) q4 e4 K3 n4 ~1 Q 1)Apache和Tomcat都具有支持安全Socket层(SSL)的功能
" ]2 C( u8 h: I8 |+ k
% E( l: K1 \3 x 在Tomcat中声明安全性,WEB应用程序的安全性主要在相应的Web.xml中设置,Tomcat支持的鉴权机制为HTTP基本鉴权机制BASIC和基于表单的鉴权机制FROM(JSP网站)。
* d2 T w N0 P6 H* Z & c+ ?; q: ~$ T% i& P' z
过滤是Tomcat 4的新功能,能够用过滤器来实现以前使用不便的或难以实现的功能,这些功能包括:
8 f7 g$ g8 A1 o * b. ]3 y" y) |7 b6 s# _
资源访问(Web页、JSP页、servlet)的定制身份认证;
) y0 y$ z5 A- z 应用程序级的访问资源的审核和记录;
/ |" r# l) _& F7 u) Y 应用程序范围内对资源的加密访问,它建立在定制的加密方案基础上+ O- \$ a: c4 K6 j
|
|