找回密码
 注册
搜索
查看: 3925|回复: 0

使用Apache Server设置虚拟WEB

[复制链接]
发表于 2003-10-12 13:37:43 | 显示全部楼层 |阅读模式
unix 平台与NT平台使用apache server的设置相同。以下重点以unix平台为例
/ ?, t3 P3 q5 b  j5 s: u$ f0 C说明apache server的设置。另外值得注意的是,虚拟web的成功设置,有大约
& i+ Y+ L5 k% d! V: Z50%的工作量是在域名的注册与解析方面。所以一般先注册好域名然后再做, x! E* w# ]+ y% R+ V3 u% m/ E5 O
虚拟WEB设置。
5 [. p% |* l+ ]9 y/ N1 `- u7 Y2 G3 F: q' m
一 、IP型虚拟主机, `. E7 P5 c; A' K$ `8 [1 b

/ r8 K+ n6 G3 M. R/ H" q! n( CIP型虚拟主机指每一虚拟主机对应唯一的IP。可通过多个物理网卡或虚拟网口实现多IP,Solaris2.5和Windows NT都支持这种方式。8 H' q3 t" ?/ V, F5 w
3 u2 b. x1 G( F
两种配置多虚拟主机的方法:
8 R- S; o0 C$ C# ]8 m0 L; p" d7 `
" n& X) _6 A, `. J1、为每一虚拟主机启动一个httpd进程。
/ S* ?1 M7 d$ q# `# g& p0 u9 t+ \1 j1 _
下列情况下使用此方法:
* W+ J! n0 N6 e; a* }4 f4 l
4 A* }+ V9 R5 X% _9 `9 Q? 需考虑安全隔离问题,如两个httpd运行于不同的User、Group、Listen、ServerRoot,两者用户除通过Web相互浏览数据,无法访问其他数据。
, o1 U0 T/ Y' l% u4 L, g; f- o- w  [& C
? 能提供足够内存和文件描述器。
( c' r9 a3 i. i" }
- C& t8 ~" l) u  X, l0 m. S设置方法:  d. C+ n) `4 `; `# @8 z
1 T5 i/ b  ~( H! ]* r1 z  ?& O3 a
为每一虚拟主机建立一个独立的httpd安装,在每一个安装路径的配置文件httpd.conf里,用Listen指令指定进程服务的IP,如:6 _9 z" e7 I! t0 e1 a
+ [8 A2 @: @/ J3 S) V
Listen 10.68.37.10:80. D! }8 M2 B# U) ]

; S: w: U# M! o% C! U$ R2、为所有虚拟主机启动一个httpd进程。5 S! A5 d+ q2 O

' K0 _9 s2 C0 M) m8 t下列情况下使用此方法:6 Y- N; x0 Z# n% ^

' `. q+ ]. P8 n! s2 s" u0 m? 允许在虚拟主机间共享httpd配置。+ a5 C  ]% ~; \2 M% e5 U$ P
" j% |9 [6 c' y' i8 F9 D, V  R
? 计算机服务于大量的请求,运行多个进程使服务器性能降低成为重要考虑因素。
, \: d9 _! |5 o8 G5 c6 R2 U7 T' O0 N* g' e
设置方法:
- O! a7 G4 r5 a; W  U' p* G* R+ a% k4 P; c8 H8 n" `
在配置文件httpd.conf里,用VirtualHost指令为每一虚拟主机设置ServerAdmin、ServerName、DocumentRoot、 ErrorLog、TransferLog或CustomLog,如:" k' K% G! q" v6 w) h5 }
1 y2 j* S5 [. X: }' f
<VirtualHost www.smallco.com> #此处建议用IP
1 R. b" v- _0 O- W- cServerAdmin webmaster@mail.smallco.com
% `1 m  R3 C3 {DocumentRoot /usr/local/etc/httpd/htdocs/smallco
$ ~1 F, s7 c) y) K& _' YServerName www.smallco.com #建议此处用域名# a' m$ e% r4 S# K
ErrorLog /usr/local/etc/httpd/logs/smallco/error_log
. n6 h" E. i/ Y/ z# r7 VTransferLog /usr/local/etc/httpd/logs/smallco/access_log5 B- v: ]/ [/ Z, @
</VirtualHost># m7 |/ y1 J* B9 k* C  S! G
8 _+ S+ X' n/ H, s- }5 D* D0 E
<VirtualHost www.baygroup.org> #此处建议用IP
1 |* y6 I4 S+ K0 R) m7 w% LServerAdmin webmaster@mail.baygroup.org
6 B8 N! r) z4 d! f: m) |DocumentRoot /groups/baygroup/www
$ I7 [/ P+ U) h7 b( Q  A+ Z; u3 ?ServerName www.baygroup.org #建议此处用域名+ n( m: u. ^& ?) U* h7 ]$ K
ErrorLog /groups/baygroup/logs/error_log0 r9 i5 L2 t; y3 Y( c: B9 f
TransferLog /groups/baygroup/logs/access_log
9 S7 L# x8 P5 r, p, l) u/ G</VirtualHost>
9 ]6 I1 F4 j( a( q3 Y9 I2 {" t& x" A+ f- {5 a' H
同时要做虚拟网口或网卡的配置,在DNS也要做相应设置。6 a5 N- r4 {  k

( e! ~0 o, [5 c* w4 m0 X, P二 、名字型虚拟主机(Apache1.3以上版本支持)
- M& O  x" A) h6 R1 v- N* S
6 [$ ?; j3 N  l$ `% X* Y  IP型虚拟主机虽好,但不是最佳方案。它要求每一虚拟主机有一专用IP,在某些机器上难于实现。5 C( U4 a+ {" c6 J
1 T4 G3 j6 G: W" T* W% F
名字型虚拟主机是指每一虚拟主机的名字不相同,但IP一样。它的好处是不限制虚拟主机数量,配置、使用简单,不需另外的软硬件。缺点是客户端必须支持该部分协议,最近版本的浏览器都支持,某些老版本浏览器不支持。但Apache为此提供了解决方法。5 h4 F" M$ N5 f

/ t6 o1 M* X& F设置方法:
5 i# F$ y0 e/ B1 B8 Y5 O" M8 |% m8 v, T8 I9 R" I. B9 P3 Y' _
在配置文件httpd.conf里,用NameVirtualHost指令设置虚拟主机,如:
: m' [2 s! ^3 K* P* m! |0 n7 [# d+ @
NameVirtualHost 111.22.33.44$ r: I/ ]0 T% a) C9 V1 m0 Y
' I; w* x5 q  g% V9 X7 [. L: L
<VirtualHost 111.22.33.44> #建议此处用IP) P# ?6 z7 I) v
ServerName www.domain.tld #建议此处用域名
' K( S2 ~5 x! j& n+ B3 W# l( ?/ qDocumentRoot /web/domain- \# u$ Y& x# ~9 p
</VirtualHost>
9 K" S! g) t& o4 z
7 F: Y# x' A$ @' z) s同时,在DNS定义www.domain.tld指向111.22.33.44。: ]& D% j. }( F
- s0 d$ J6 i( {1 a
注意:当在NameVirtualHost指令后使用IP时,任何使用IP的URL请求都是针对虚拟主机的,主服务器从不会响应一个使用IP的URL请求。5 E: Z* r3 O) T% v
" O) Q5 N! _! [5 p/ y+ G
另外,有些服务器希望以多个名字被访问。例如,假设有某一IP的服务器,希望以名domain.tld、www2.domain.tld都能被访问,做法是在VirtualHost指令部分使用ServerAlias指令。如:/ f9 S! l* F+ F5 r* m
2 A9 x9 ^# _3 p/ _1 z4 l; w4 o
ServerAlias domain.tld *.domain.tld0 |' O. z. l7 y; |: d

: ~- H. R+ B0 r3 H2 `4 |另附一些虚拟主机的设置实例。
0 L8 W% t3 S/ l
0 N+ _- S3 \; N7 ~- A 
* k5 L( a; M( I  @3 O
9 ^4 j5 g2 M- e+ I' k" B: b 5 h) G5 x: }8 c# F; W- x# {

) c8 |! ?) I: P$ [7 z附:虚拟主机设置实例, N. o) U& f' R3 P6 C

0 }. x5 U" u3 [, i; h: Q# ZIP型的虚拟主机配置9 Z2 w  f0 I2 b' w; [3 u

/ ~3 b  \5 L, K" w! ^; q. BSetup 1: 服务器有两个IP,
7 N3 L$ X, P7 W5 R9 J* O- [' `; [1 f% J
111.22.33.44 server.domain.tld
) b4 W8 P# t- x# b0 u$ z) F- {$ L  ~0 p- p, C5 w: J
111.22.33.55 www.otherdomain.tld6 X$ P* C' M# x, ?& q

- r( X' q& X$ j9 g4 ewww.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。
& N# Z1 A' ?3 ^  `+ J
6 l5 X1 B" s! E- M0 I$ v! }/ f服务器配置:
4 U) R+ X( p+ h  ?$ l) {
: r; Z) K+ j7 G( x/ G/ R...% _: P2 @- P! j( G! [

% ~2 d+ T: t$ x1 T+ DPort 80
# l# z7 U" ^) k! U! g  R' m/ s9 ?6 h, G. U% F
DocumentRoot /www/domain8 {: ?6 V8 _) O
ServerName www.domain.tld
$ @" O  c  w. |* ~: h6 @% [<VirtualHost 111.22.33.55>
, X+ U) |% p- {7 ZDocumentRoot /www/otherdomain7 D9 k# O9 j6 B8 n
ServerName www.otherdomain.tld
( x+ V7 I; M* o! ~' \7 n...8 Z& _3 w" |6 W1 |, e
</VirtualHost>
! I7 C: W& i% Y0 Q$ P, u1 |" G* q/ }: P+ m6 t2 u6 \, f  S
Setup 2: 基本同Setup1,但不设置专门的主服务器。- b. N. v1 m0 P, T: ]- V% e' d; h
. c/ F, c% T1 o, Z' {6 g- E
服务器配置:5 s4 Q" w, q3 t1 Y- A$ @

8 M! ]+ F" X4 z8 q8 f$ T& \% H# A! J...$ }$ \- t8 v, s) Q3 x
  L2 G! L, @% Y5 L0 s
Port 80
/ _3 d) I8 N' T; L# T& E' |- X# p& Y! {8 S8 z; v# g
ServerName server.domain.tld2 i% V# _. _, N9 p0 ^% q& E
<VirtualHost 111.22.33.44>' [3 H$ R; p, U4 e( |
DocumentRoot /www/domain8 }4 V: G* j1 g. {5 O9 Z
ServerName www.domain.tld
( n& C5 F6 L0 Q' ]1 B( i/ @# I...
+ @: ?% G* k' `- S  {0 H</VirtualHost>4 E7 E; T8 h; \& I  E
' V2 o1 `) G# Z+ u1 n/ W
<VirtualHost 111.22.33.55>
4 Y% T2 u1 F" Q# MDocumentRoot /www/otherdomain
; F0 o4 O9 d7 p% Y! H0 l- g& DServerName www.otherdomain.tld
/ x3 `  X. E( F/ d; i, l...3 V4 L  r: z3 N, J1 R
</VirtualHost>1 b2 v2 _7 P, k3 ?

% t& j+ j$ i  p: p1 o这种设置只有当URL为http://server.domain.tld时才击中主服务器
! Q9 X/ T+ d# F0 C5 Q" y% n
, v% a# s  {4 ?4 {$ h+ g1 F' oSetup 3: 服务器有两个IP,! ?6 ?" L, U+ b* t2 E2 e: O

- i) j- Y! w7 R# C111.22.33.44 server.domain.tld- E; K' B* x2 i1 H7 }- K
111.22.33.55 www-cache.domain.tld4 \! {: c8 R4 h+ t1 a1 d6 C" m
www.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。
/ ], x7 c; h: _- Ywww-cache.domain.tld是proxy-cache,端口是8080,Web服务器使用默认的80。
! i8 B' U/ [# y, }) ~$ t+ G3 A/ u
服务器配置:
3 c, D7 z8 r2 A( ]% \( [/ m
+ j4 c! G" t* }1 x9 h* P...1 M# r3 i& o3 ]4 E9 o  \; C4 |
- ]' |( R8 m" C6 l% _( p# e* D# S
Port 80
* i8 M; m; q6 v- ?
$ M" Q7 l. O+ h5 p/ ]Listen 111.22.33.44:80) q1 W& p; B; S" w2 P/ w! {
Listen 111.22.33.55:80803 S6 H2 @1 S) s2 k5 L7 Y+ Z! ?
9 C% F# D* o9 Q
ServerName server.domain.tld
7 D7 x+ q  }0 w9 l3 _<VirtualHost 111.22.33.44:80>3 `6 z7 u! V1 E) t1 L7 ?7 V
DocumentRoot /www/domain
0 q! a) T( S1 B% U" |: q4 i& FServerName www.domain.tld: B" y! R/ i+ {; T! u
...
" @/ F% X. O  ~/ x* s. G9 a0 w</VirtualHost>
( g/ K& i' S. b6 {1 b
3 n, I# g% e4 C6 v* ^<VirtualHost 111.22.33.55:8080>
! O' f' k' n1 GServerName www-cache.domain.tld
- P! x: y6 J0 Z, b6 r1 F' C4 C...
/ t, `$ l  p$ k" F5 B* L<Directory proxy:>
+ R! U# D' s" N8 Q" m. uorder deny,allow8 @- m5 }3 I% S* x. k7 z
deny from all
# o+ P2 ?2 o( Z; w# Q' p  B3 Aallow from 111.22.334 R% q2 E6 I5 V
</Directory>  O) P3 \# d, [, V7 q$ a0 S- D
</VirtualHost>4 f' b# u8 U8 \
2 A1 h5 n% x) N: s
 + R3 h% i$ k2 T5 ]( _! I# s
, L- L! |) r( F9 ?$ \6 y# i# e% z7 h
名字型虚拟主机配置
( s+ t) ^7 u1 a1 I- ?' Z" @* G( P: d* R
Setup 1: 服务器有一个IP,8 r0 L3 ]1 ^; ?) [
) s/ N0 m1 F- k
111.22.33.44 server.domain.tld.
& m4 B- H3 x5 j
; S. v+ h# P0 u7 L3 L( Nwww.domain.tld和www.sub.domain.tld是别名(CNAMEs) 。 % x. \& O: M3 }# b1 ^0 W( k

' a1 q! y3 J9 L! v4 f' d% i) l服务器配置:
$ ^( Q4 c% E) J" ]8 @
& l9 J; s3 U( Y; K$ R...
7 F% E$ q2 G4 M7 n6 u# A' n1 q, |1 L& |4 x# w. E$ \
Port 800 T( f8 N+ S+ d+ q' K, w

0 e" z: t7 F; H8 w6 rServerName server.domain.tld- K9 v" z. L5 h; ?
NameVirtualHost 111.22.33.44 ( L5 e2 @! o. Q4 K& C; p
5 e' g9 {' H: R. _& e0 @: R
<VirtualHost 111.22.33.44>
3 h  l  V* w, r! K4 C- `/ ^$ \; ^9 \9 GDocumentRoot /www/domain( |* t- x5 R5 ~0 N$ D7 L, {
ServerName www.domain.tld: z" W0 `; T  _( `/ ^0 I, R4 Z
...
" E5 @" s& r9 c9 e! o6 b2 M</VirtualHost>
# o4 x2 g3 B0 _. s7 F
9 C0 H* c4 w  D0 a4 p( l<VirtualHost 111.22.33.44>( l; t" P" `( o, J( d
DocumentRoot /www/subdomain
% h8 U- o& Y* G0 e% h3 g# YServerName www.sub.domain.tld
4 e/ v. @2 U9 S+ R6 e$ m...# c7 _$ }3 s1 ?0 I8 H- i% d
</VirtualHost>
- L7 K8 B# ?) X8 `) v* W
+ {0 c5 d' Z( V- u" W若使用IP访问服务器,由于 www.domain.tld 有最高优先级,被认为是默认服务器或第一服务器。
+ n# Y/ N1 K: Y
" [0 h* u& D, P: X; gSetup 2:服务器有两个IP,: L2 N9 ], ~/ `( B; v8 _- D5 K1 R
2 e) |" V( |/ ^1 ]% F
111.22.33.44 server1.domain.tld 用于主服务器
0 \! d3 Q( L- x* k- r111.22.33.55 server2.domain.tld 用于虚拟主机; a, ^: m& D/ b3 g! r  D' I( B0 w% k
别名www.domain.tld用于主服务器,* R  {3 A/ W3 l0 K. @7 V* \5 M3 f& I
别名www.otherdomain.tld用于一个虚拟主机,
$ ]# \7 H# R; P- }" O; \. Z别名www.sub.domain.tld,*.sub.domain.tld 用于另一虚拟主机,4 j7 g6 P1 d- O4 U/ i. L
/ o5 \, `+ i3 ~2 \7 k
服务器配置:
2 D+ b7 m4 ~" }' e! }. W% G6 ]' s6 c) w2 {5 F8 @' N2 U9 j
...
$ n8 a7 R4 Y$ t, d# J, H. |( O
Port 80
4 F: y2 r/ V" e7 `5 F' {9 V% N
5 Q8 s; H6 g* I. @7 gServerName www.domain.tld+ R6 c! q& O5 w9 O
DocumentRoot /www/domain
7 Z  |; x, `/ T* G. F7 Y) _+ SNameVirtualHost 111.22.33.555 {7 I* I3 e3 a0 s
<VirtualHost 111.22.33.55>
" b+ ~  S7 [; Q: }4 `DocumentRoot /www/otherdomain7 M) _: y, g, K  H
ServerName www.otherdomain.tld
3 ?& @) x% R% K8 L" V- W7 F* V...8 Y% `; F2 \+ v- ?! S
</VirtualHost>
3 |3 R  M1 Q! W3 a( u1 z% r5 F# d; \7 F( d+ W$ K
<VirtualHost 111.22.33.55>% h7 U# q7 n) n  J
DocumentRoot /www/subdomain% D- W) z, |% y! q- _! Z8 O
ServerName www.sub.domain.tld
3 B6 L) A  h1 X, G; a+ FServerAlias *.sub.domain.tld
0 Q# Z* M% c: ?3 ?- K7 A) Y+ X...  E0 z5 F* K3 B
</VirtualHost>
# Z  S; i# d" r. v
* v2 L& s; r$ z& [: |& j; d混合型(IP/名字)虚拟主机配置  o  ?# s+ V2 P8 g1 `1 g

' [9 Q! W+ ^; Q) `Setup:服务器有三个IP,9 z, N# Z% f" Q/ b' s

- P) y% F8 c' C# G$ ~111.22.33.44 server.domain.tld 用于名字型虚拟主机: T8 f- z( E8 |5 p) h" @# j2 Q
111.22.33.55 www.otherdomain1.tld 用于IP型虚拟主机
* F0 ~% U5 N! f, u# l5 O111.22.33.66 www.otherdomain2.tld 用于IP型虚拟主机- b+ u8 q$ p: t- }. k, u

! s; \6 \9 b8 v6 s2 a服务器配置:$ j1 H- ^$ C2 i! G4 V- a
...
# [8 K# L: e5 z" b5 Z
. [& @' k, ]. K# G+ i& c- |) ~* XPort 80
1 \  [2 W' n8 d; {+ k, X: A/ VServerName server.domain.tld
3 P2 ^, i; I, D9 N, {1 \# h
" @$ ^2 u, B$ q1 s' kNameVirtualHost 111.22.33.44
* g; {. v9 p: G9 w! ~0 s
) {( y# y% @4 O! `# Z<VirtualHost 111.22.33.44>4 E. M. k8 |% o$ w5 S$ @
DocumentRoot /www/domain
9 y# V: M* [9 g' r! b+ l, JServerName www.domain.tld
1 }3 ]) W9 f) f# N...2 S: o( D2 u- C, W7 S/ I
</VirtualHost>
6 |7 |4 a" K8 t5 ~/ B/ r
: m- _( m" C% y/ k4 d' _1 x3 Z% |<VirtualHost 111.22.33.44>; {) W6 n* H% z  n& G! v: o
DocumentRoot /www/subdomain1- x+ q+ U; d. d+ V/ z# z0 }
ServerName www.sub1.domain.tld
: A. H9 o7 E$ W0 [* B$ z8 @! C, k...
: {( o; v% o8 r: s  c* k</VirtualHost> ( n1 W( n0 A6 |# K# H6 {9 e
$ ^! D, ?2 }- v. B; b8 W2 ^( C
<VirtualHost 111.22.33.44>& b6 Z4 |" }# m' S; Y
DocumentRoot /www/subdomain2- d/ J  L# C7 H- x, B  A; a1 Q
ServerName www.sub2.domain.tld/ P1 N; k& k$ r) r6 _
...
$ P# X4 @$ _9 e+ W7 N& E3 l+ i</VirtualHost> 8 U( J3 Q( r" D' b/ J

  ?$ b1 t" ]4 c. u+ Z4 q+ u<VirtualHost 111.22.33.55>
5 F( @' p8 a$ p' q* L9 b' SDocumentRoot /www/otherdomain17 |$ ^4 {* X" W  J0 ~
ServerName www.otherdomain1.tld1 c; I2 K0 Q* P+ G* z6 h9 M
...
6 g2 K  U% e5 I, ~+ H</VirtualHost>
" H7 H0 V3 P' ?' f! |. n8 }
# ]# i7 U* D5 b' m( e<VirtualHost 111.22.33.66>
1 U. x! K% \6 e$ a; O( G# c) N0 Z! jDocumentRoot /www/otherdomain21 g2 k9 h1 \6 G& ]6 i. K
ServerName www.otherdomain2.tld" U. j' v( c) ^8 C
...
6 i! p! c6 {) n  H. d) x. Q! E</VirtualHost> ( g$ A  ~7 q7 I4 a
4 G3 f/ {6 {! B' z, [
端口型虚拟主机配置1 r  h/ \. T, l

% c, h- u* u% W$ J" k' WSetup: 服务器有一个IP,, U0 t3 P. l0 u% X
& M( b/ @+ B! w! ]" n
111.22.33.44 www.domain.tld% \' X( g2 ~- R& s) y
0 A! V) A5 v% ?4 U
不需要另外的别名或IP,采用端口型虚拟主机即可设置一个配置有别于主服务器的虚拟主机。
0 l3 ^: D7 L: w( R: P
) j* i& Q* u( T  X0 S& b4 o服务器配置:
9 s3 t) s# V# \% O...
' Q8 ^# o; K7 z; ~8 u  r
9 n5 d  |" T) x/ Q: ]0 BListen 80: M( T, e* Z, Y! H+ m
Listen 8080
7 q& P  D$ D5 z' f  }
2 K4 t: q7 e" l/ s( b3 }ServerName www.domain.tld
7 H) X- r; S8 n9 MDocumentRoot /www/domain) K6 O* ~6 }* x1 R: S* ?" x
% |$ ~. j$ C: W
<VirtualHost 111.22.33.44:8080>
) ]; s% \$ i  ^DocumentRoot /www/domain2
$ O# v  z# c  O: e7 s. u0 a* N. X...
  o  ?4 X3 h, z8 I5 K0 F; z</VirtualHost>
; p/ S" H9 `& R- c- r$ e# D# m, v" F, X) O* C
 
$ ?0 `, W4 i$ w. H. B# G1 [: D" I+ E+ D1 T) p8 k" z
来源:http://fengyu.china.com/Vhost.htm
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|宁德市腾云网络科技有限公司 ( 闽ICP备2022007940号-5|闽公网安备 35092202000206号 )

GMT+8, 2025-5-5 06:21 , Processed in 0.015411 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表