TA的每日心情 | 衰 2021-2-2 11:21 |
|---|
签到天数: 36 天 [LV.5]常住居民I
|
Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。Apache成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。
" K6 ]! {6 g8 s" m! a 0 J/ ^6 \3 F! r/ l5 Z
几乎所有的Linux发布都安装Apache作为默认配置。SuSE7.1甚至预安装有包括各种高级模块选项的Apache,如PHP3,mod_perl和LDAP等等。用户会惊奇地发现系统安装成功就会有一个功能强大的Web服务器可供选择。虽然安装Apache并不是非常简单,但是如果有具有新的特性或安全补丁的Apache发布,则下载源代码包并编译新的Apache是值得的。
8 H& ]) A$ g7 r0 k# Y6 I: k$ L4 L
( J0 V( }! o3 p3 @& H! E Apache不但具有庞大的用户群基础,并且有丰富的配置使用文档。Apache提供服务器端对脚本技术的支持,比如Perl、PHP等,Apache结合使用Apache JServ可以实现对java servlets及JSP的支持。Apache的很多模块实现安全方面的防护:如mod_auth提供对对服务器上数据进行适当的保护,而SSL模块则用来保护服务器和客户端之间的通信安全。
0 T' G" ^1 A3 R3 q2 A9 u- X! q
$ X. o; `" e( K4 O4 n 下面我们再介绍一下Tomcat服务器软件,Tomcat是Sun和Apache合作做出来的JSPServer,支持Servlet2.2及JSP1.1等版本。笔者建议大家使用Tomcat,而且Tomcat未来将会取代JServ,成为Apache主要的Servlet&JSPEngine。Tomcat在设计上是以独立的Server执行,而不像Jserv是附在Apache中,这样就更可以发挥在servlet中,非HttpServlet的能力。Tomcat是Java程序,所以只要有JDK就可以使用,不需要考虑操作系统平台。
9 {" v; F3 J0 g( a% K , ?9 m/ X+ q0 q4 _$ H9 d
作为WEB服务器扩展的Tomcat服务器有一些问题需要说明:
4 z5 v2 n7 l7 P+ w0 z
) e: W5 q" F6 s& ^ 当处理静态页面时,Tomcat不如Apache迅速。
r8 w# d: [- A: W7 M' { e Tomcat不象Apache一样可配置。 + Z4 V1 a. ?7 w( O F3 k6 ]
Tomcat不象Apache一样强壮。 ' C( g3 H( x" o" e' f; K5 c
: D+ Q+ z9 r8 s4 @" T# s( o: G 基于以上原因,一个现实的网站使用一个Apache作为Web服务器,为网站的静态页面请求提供服务;并使用Tomcat服务器作为一个Servlet/JSP插件,显示网站的动态页面。
/ ^9 j! J- @& J
: o4 G7 d& B( }- m8 a7 z 采用apache->tomcat这样的结构才具有更特出的优点,主要体现在具有更好的可扩展性和安全性。这种类型的站点的主要特点是每一个页面都可能是动态生成的,但这些数据中主要部分还是静态的(比如,各类图像GIF、JPG、PNG,流式媒体等),这种结构的优点是兼有可扩展性和安全性。
2 `3 [& W+ c7 Y/ ~! N + Q' l6 L/ w: d6 ^3 m
下面以solairs8为例,免费下载Solaris版的Apache1.3.27,Tomcat4.1.12来说明安装配置WEB服务软件apache和应用服务软件tomcat(包括JDK),其它平台可以类比。
# {0 d1 C$ i* V" F
! U8 h n3 N) l+ H( \: V6 s3 U2 d 注意:下载的Apache、Tomcat的版本与操作系统的类型有关。
0 o: p* F5 }$ f1 a: H2 E' S l4 |
8 I, _) H, Z, B8 |; z 一、应用环境
" u a9 ^& }4 ` j r* ]0 X 操作系统为Solaris8,应用环境为Java1.3(假定安装在/usr/java1.3目录下)、perl5.6(假定安装在/usr/local/bin目录下)和gzip(假定安装在/usr/local/bin目录下)。 1 W( r' H7 Z E7 u/ j# X; ^& Q2 l
( r# }! X [: f: P# h
二、软件包的下载、编译与安装
% l" q' ~% O+ V; M6 n7 r* Z 1、下载地址
) z. I% G* i( D & L; r! }' @- K) k$ O
在http://www.apache.org可下载Apache源代码软件包apache_1.3.27.tar.gz。 & x8 _8 \! W' g( ]8 g# h
在http://jakarta.apache.org/builds/tomcat/release/v4.1.12/src/可下载Tomcat源代码软件包jakarta-tomcat-4.1.12-src.tar.gz。
' v1 Q/ a$ B5 _1 F 在http://jakarta.apache.org/builds ... elease/v4.1.12/bin/可下载已编译的Tomcat应用软件包jakarta-tomcat-4.1.12.tar.gz。 / M3 D( d1 O* P+ ]- h
1 V% `, J8 e1 u2 w- Z
2、编译与安装 / O+ H9 ?0 h8 ^0 }4 n# e7 r3 C5 [
' E4 z( H& C" C9 F/ @+ a, U4 ~$ L% k 假设各软件包已下载到当前的某个工作目录(如:/home/tmp)下,Apache和Tomcat将安装在/home目录下。在当前目录我们可以进行如下操作。 3 R* p3 T9 d' g Y
8 y% l# h. h+ [4 E8 Y" o+ c 1)编译和安装Apache应用服务 3 B" R) t- c& X: P
1 L. g K) T p5 P ①解包 3 g0 ^% s2 r* g9 W) f' F0 R
$ J, _+ u; {' ` $/usr/local/bin/gzip-dc./apache_1.3.27.tar.gz|tarxf-
/ n" `2 u/ Z! O9 T% C6 V ( d& j: ]3 e% e( [7 P
②编译
$ f) `5 h$ E2 M7 u0 [; Y 6 S" a, ?2 }" l% M# N
$cd apache_1.3.27 7 L) e2 c$ |: |) ]4 f5 _
$./configure--prefix=/home/apache-1.3.27
7 {* N/ q, T; u5 X* R! g --with-perl=/usr/local/bin/perl--enable-module=so
i2 M. Z4 @2 X1 z9 x0 t
9 c: t( t% _) Y" ]' r O- \ 假设perl的解释命令安装在/usr/local/bin目录下,Apache服务安装在/home/apache-1.3.27目录下。 8 b- C; Q) x- n b
1 U( X6 E1 A/ y2 Q& G- c3 M $make 2 W: c2 B" V6 Y" C
9 V' p$ {& }1 r) R* p# X5 Z
③安装 . J$ _- a+ ~, r* E9 z/ F6 y( l
5 y: k9 L Q& ?9 x3 a
$su
8 W; T" R% S; C% h7 g #make install
7 u# |! h9 \5 w8 v
( E! y# x( Z4 K: f8 N; M& q 2)编译与安装mod_jk插件
' D! L- T$ z4 `8 x2 I4 j6 q6 z& v5 I ! y8 D; V$ E/ _; o& O9 K* T5 B$ A
①解包
+ M# ~/ H7 j8 L1 Q& R0 Z+ U& O & f7 v' M9 Y1 [" t& ?/ G* W9 H/ w* z
$/usr/local/bin/gzip-dcjakarta-tomcat-4.1.12-src.tar.gz|tarxf-
8 T& S% K7 b" w) ~1 R, v) p
9 T \& R, o3 l ②编译 5 }+ b" D9 [% T/ P/ e. M1 j5 b3 R9 `
! M7 m' s4 M/ J w; k! p
$cd jakarta-tomcat-4.1.12-src/src/native/apache1.3
/ i, @) u, l! u* i8 A5 e2 T3 h I $/home/apache-1.3.27/bin/apxs-omod_jk.so-D SOLARIS-I../jk-I/ 1 ]- ?7 N3 s n7 R
usr/java1.3/include-I/usr/java1.3/include/solaris-lposix4-c*.c../jk/*.c % W$ W3 e0 l3 g- s
% v. z# v& I( w R9 h 假定Java安装在/usr/java1.3目录下。
% a# \) a ?. G# Q* t( z 3 v* K( m7 K% H5 R' N& D6 B# W
③安装 ' j0 }! g, z* a4 p3 y8 }3 {
2 z) p# d# N( A) |
$su 8 x( F1 F, y0 K5 P! }! Q
#/home/apache-1.3.27/bin/apxs-i-a-njk mod_jk.so
9 s' f( v) _# v cp mod_jk.so/home/apache-1.3.27/libexec/mod_jk.so
; Q2 U7 }" g6 O2 z& d chmod 755 /home/apache-1.3.27/libexec/mod_jk.so
" I8 N" i9 {/ b0 @* H2 |7 u [activating module`jkin/home/apache-1.3.27/conf/httpd.conf] % U$ Y6 s( ]6 J) R6 N4 I
6 E H+ x$ y! {$ t& O" d5 Z
3)安装Tomcat服务
$ l. R9 g$ d9 k7 Y { 8 j* w ^4 d4 m4 O: o- R$ L, Y0 q
用超级用户身份把已编译的Tomcat4.1.12解包到/home目录下即可。 * p- \6 f* Q/ d7 E
# X: I1 j W4 j' A
$su
/ D3 e3 t8 m3 t% a$ c% c #/usr/local/bin/gzip-dcjakarta-tomcat-4.1.12.tar.gz|(cd/home;tarxf-)
$ p5 `- E( @: K2 R- [: T
: V* @1 \3 T+ n, u. i! X6 k 3、参数配置
% z3 \/ L, z+ z ; m$ v8 M- R) Q6 `: g
(1)配置Apache服务 5 n+ v; c- {% j' x" ]1 P6 M
, C( _8 f- g6 I! B0 l 用vi命令打开Apache的配置文件httpd.conf。
/ H/ L) C/ L6 d+ u
0 _/ a7 G5 m. g #cd /home/apache-1.3.27/conf
& b8 d7 l( f4 o5 X$ K6 } #vi httpd.conf
( p; c, ?) {; x0 h( J+ l- U 5 s+ E1 q% t! t6 j: K! M! [
在末尾添加以下内容。 1 A7 f4 K1 C5 w5 {
. P: T% X6 ]: x, s) \$ K JkWorkersFile/home/jakarta-tomcat-4.1.12/conf/workers.properties " D( r0 i+ v) u7 C3 [- |( D# r# V `
JkLogFile/home/apache-1.3.27/logs/mod_jk.log
) n4 D3 \" ?* w" y) j/ h
8 S1 Y$ W" o, P) ~# h 注意:日志文件可根据具体情况调整。
/ Y5 D6 }- Y. K6 Z
3 x# Y% f7 _6 y# O$ Y! v a1 S JkLogLevelwarn 5 s V5 O3 S. k8 M$ ?# F
JkMount/*.jspajp13
, C( G$ f4 F; \4 k7 e JkMount/servlet/*.jspajp13 2 g! {; I5 n# @
, V/ W/ M/ a) f (2)配置Tomcat服务 # {! ~! t; O9 D8 N
( w- d/ X0 {2 a e/ R 首先,修改server.xml文件。 ; u; [, J4 G/ H4 h& l
$ c+ V, H# w4 g
这里假定存放Apache的Web网页的根目录为/home/htdocs。 8 _' @& `$ y6 K3 f
0 h8 L, N% j; O1 ^0 e #cd /home/jakarta-tomcat-4.1.12/conf # h' J4 F$ q+ `% F
#vi server.xml 1 x; r) x; c# @) q0 P+ @5 e
0 G2 W0 q1 o- _) q, n
然后,在Connectors部分嵌入如下内容。 $ I P+ t/ V) u' d$ D
/ `& U" b3 |2 d% M/ o
<ConnectorclassName="org.apache.tomcat.service.
& M! G. R, s. n7 I9 |, V PoolTcpConnector"><Parametername="handler" 5 d/ n Y: x1 K. R
value="org.apache.tomcat.service.connector.Ajp * S6 B& \- z& ?+ H( f) i
13ConnectionHandler"/> ! Y& L* u- I$ K1 \, x+ |6 L9 o
<Parametername="port"value="8007"/>
; x3 ?1 ^& k, q, ~3 M </Connector>
# p6 _/ s B- G& P9 l1 c X
- M( s* D! X1 t ]4 y- b 接着,在SpecialWebapps部分嵌入如下内容。 & d" Q. X9 }2 Q7 g8 r& K% e) x
- l1 q" _9 ^ n' l% j6 C <Contextpath=""
5 a8 a' N/ q7 a+ w, t& j' U docBase="/home/htdocs" 6 A& a3 c0 _5 Z
debug="0"> 0 e# l7 i: {; A& o% h; {: C
</Context>
4 V6 N+ w) ?; u5 E ) P6 e0 N( p7 y/ s1 g
修改workers.properties文件。
/ L% W) [$ H* g! D & `4 L" l" y' X4 M' C+ C2 U
#vi workers.properties , h5 |! b' t, K1 A" z' w
...
- k* [7 v7 s( ^' r, \4 n) p6 g: R" H workers.tomcat_home=/home/jakarta-tomcat-4.1.12 ( z% i; G: f4 ^5 Q9 z3 s9 b, P
...
' Y% O, u% J3 r/ ~& t workers.java_home=/usr/java1.3 4 z4 j9 R* v/ j3 Y# v% ~/ S8 I
... + q' z. d1 j4 \) z. E6 S/ t- j) I
ps=/
* r( e! S! y8 q7 O4 Q' z8 n ...
9 N+ I ~% _' i' T E
( \- ^7 D6 m, P# E 随后,修改Tomcat启动和关闭命令文件。 ' \# w+ G7 d: l2 S. R* \% e4 S) O4 |0 v
2 h7 u) E4 n+ e' I7 o5 w2 v/ K; ] #cd ../bin
$ b9 B; {! W' O #vi startup.sh : x! w0 }9 _1 N: x; J' s
( w* p' a2 j9 s$ C+ [2 d 再在"BASEDIR=`dirname$0`"语句前嵌入如下内容。 6 d/ x# g) j4 A k) \: g% d x
7 i4 ] N6 H, j2 P1 {9 r# c
PATH=/usr/java1.3/bin PATH:.
% R2 s# E# c( g' Q" g4 A6 }/ U JAVA_HOME=/usr/java1.3 5 G, H6 k0 y8 `
TOMCAT_HOME=/home/jakarta-tomcat-4.1.12
5 F, D+ l3 ]+ o d8 N Export PATH JAVA_HOMETOMCAT_HOME
9 B+ A1 k T/ A {2 t m #vi shutdown.sh 9 L+ W& W- R0 o) `; I8 H$ t
( `" B, F6 K! w
最后,在"BASEDIR=`dirname$0`"语句前嵌入如下内容。 : }2 K$ I+ o8 ]
2 {1 v4 p# a f! a' O0 o% J
PATH=/usr/java1.3/bin PATH:.
& s! x+ \; w2 O, p* `, f0 d JAVA_HOME=/usr/java1.3
* x( d5 b, e9 b8 ^% J6 B$ }& u TOMCAT_HOME=/home/jakarta-tomcat-4.1.12 - d/ D b4 Y/ |
Export PATH JAVA_HOMETOMCAT_HOME
4 h8 ?: g9 P; j. U. i$ a0 Q5 K
7 [9 l3 [ Z1 b, F6 Q9 I 至此,Apache和Tomcat服务器软件安装成功,上面是在UNIX(Solaris)平台下构建JSP网站的基本配置。Apache与Tomcat结合支持JSP动态网页开始是通过一个名为"mod_jserv"的插件来实现的,采用这种Apache/Jserv方式配置参数十分复杂,运行效率很低,而且对SSL(一种加密传输方式)的支持也不理想,因此Jakarta工作组新近开发了"mod_jk"插件,它很好地弥补了mod_jserv的缺点,而且能支持Apache以外的多种Web服务。关于这种Apache/Jk方式的实现原理,请参考有关资料。 ( U4 `( v$ n6 W
* ^2 @ P, p1 A1 V
三、UNIX或LIUNX环境下Web服务器的安全管理与维护
( {* ^3 l( K, ^3 K- V2 [6 l: U 1、Apache和Tomcat的启动和关闭 + g6 [, L% H7 c( X% G
#/home/apache-1.3.27/bin/apachectl start 启动
. ~& P2 [. I$ k #/home/apache-1.3.27/bin/apachectl stop 关闭
6 x3 _2 q" ?" [ p! ^ #/home/jakarta-tomcat-4.1.12/bin/startup sh 启动
/ ^2 ?/ X* w2 P9 w5 i' { #/home/jakarta-tomcat-4.1.12/bin/shutdown sh 关闭
) S6 s' f2 K& h; z7 O( X+ A0 _
3 [- a6 ?6 r! |8 A 2、Apache和Tomcat的web服务器的安全管理 ' j( x0 a* H. E# `
' j" @' O0 s5 F6 t# |. c6 E. t# s 1)Apache和Tomcat都具有支持安全Socket层(SSL)的功能
5 s% E6 u( Q m8 G {9 w7 ], E
5 Z6 F: ?; {/ U5 q 在Tomcat中声明安全性,WEB应用程序的安全性主要在相应的Web.xml中设置,Tomcat支持的鉴权机制为HTTP基本鉴权机制BASIC和基于表单的鉴权机制FROM(JSP网站)。
0 c( b; |1 y, E
/ Q8 [8 ~3 c; [: p2 P; l) P/ o 过滤是Tomcat 4的新功能,能够用过滤器来实现以前使用不便的或难以实现的功能,这些功能包括:
2 O8 m1 E& Z) |0 R9 N9 F$ l
0 N3 {" P: Z7 u2 w9 b6 p% {) O$ m 资源访问(Web页、JSP页、servlet)的定制身份认证;
! Q5 A" `; d o3 U3 A# s 应用程序级的访问资源的审核和记录;
4 _0 g8 h2 S. o9 ^, n 应用程序范围内对资源的加密访问,它建立在定制的加密方案基础上. X$ V) j2 d4 T6 c. m4 y. ]7 p
|
|