找回密码
 注册
查看: 4459|回复: 0

使用Apache Server设置虚拟WEB

[复制链接]
发表于 2003-10-12 13:37:43 | 显示全部楼层 |阅读模式
unix 平台与NT平台使用apache server的设置相同。以下重点以unix平台为例2 m$ b' X5 w/ B0 T4 t% x
说明apache server的设置。另外值得注意的是,虚拟web的成功设置,有大约2 n7 J- y0 z# A. U* F. q& g  t0 u
50%的工作量是在域名的注册与解析方面。所以一般先注册好域名然后再做
+ z# _8 V* k% b" n8 `虚拟WEB设置。# P$ S: @; {, _) @% k9 n
) N+ s0 s: S8 Z6 M" p3 J- a4 h! ?' X
一 、IP型虚拟主机
% l. s" e9 K% C5 a; K, O0 n" ^7 U
IP型虚拟主机指每一虚拟主机对应唯一的IP。可通过多个物理网卡或虚拟网口实现多IP,Solaris2.5和Windows NT都支持这种方式。
: O% E& Z1 n  K1 |3 {6 b, q& @8 I, G4 b2 {3 |' L* E3 [7 G, y
两种配置多虚拟主机的方法:3 c/ A  N$ H, o" g2 O8 i- V9 n. s
5 Q) M1 R8 {3 X. t3 i- h" v4 c
1、为每一虚拟主机启动一个httpd进程。: R, V3 f! H; e
( U* E# E- @- k. Z1 g: y
下列情况下使用此方法:
6 I) D1 v8 q. z: P# x$ g. K' A0 e/ S! }
? 需考虑安全隔离问题,如两个httpd运行于不同的User、Group、Listen、ServerRoot,两者用户除通过Web相互浏览数据,无法访问其他数据。
+ `% F' O" K" S" ^8 \  v1 ~# M& e- D% X; q
? 能提供足够内存和文件描述器。
) y/ T: x- S1 |$ u- X+ Z1 P+ u: s0 K
设置方法:& ^4 h7 ^* s$ o$ _4 k& L& Y

& b( r: U$ B. _' o+ D( j  w为每一虚拟主机建立一个独立的httpd安装,在每一个安装路径的配置文件httpd.conf里,用Listen指令指定进程服务的IP,如:7 A0 _* F4 ]: @, F8 |( |/ w7 N1 G9 ~

" w7 m& _5 i6 }$ E% @Listen 10.68.37.10:80- D6 w6 ~6 S6 H+ R/ Q  z& M4 ?0 \

3 D  ~# K0 U" y2、为所有虚拟主机启动一个httpd进程。7 e) F4 m. x# ]" I
6 L  c0 |3 G, }0 y
下列情况下使用此方法:
" {0 W/ n9 g* z+ `7 n9 L: h8 m
. a7 }, B. ^5 K, B) c# R, D? 允许在虚拟主机间共享httpd配置。, A- M  D# C% r) h* @8 n
/ x& |" F6 `! G3 U" f
? 计算机服务于大量的请求,运行多个进程使服务器性能降低成为重要考虑因素。
! }2 I( S0 N/ [4 a9 R3 V0 Q
/ }$ y% o/ J1 [6 u  T设置方法:
7 W* |/ b3 _' I+ A7 m3 Q) e$ J6 y: I
在配置文件httpd.conf里,用VirtualHost指令为每一虚拟主机设置ServerAdmin、ServerName、DocumentRoot、 ErrorLog、TransferLog或CustomLog,如:) w/ t1 D) h- `4 U5 V2 L2 X

" J, P" d  \0 z+ y  ]- I( |7 ?) p$ v$ e<VirtualHost www.smallco.com> #此处建议用IP
  q' [" S3 b# A+ FServerAdmin webmaster@mail.smallco.com3 k, M( F3 S0 m6 N' N9 b
DocumentRoot /usr/local/etc/httpd/htdocs/smallco
- ^# x5 j* J& J  zServerName www.smallco.com #建议此处用域名& G* L( U+ @/ z
ErrorLog /usr/local/etc/httpd/logs/smallco/error_log( c( G  q$ h6 s7 n
TransferLog /usr/local/etc/httpd/logs/smallco/access_log
: F. J% q1 c& V' ]1 D  V</VirtualHost>/ K3 Z1 M  s; d. G1 o- W

  I/ Q9 p& i6 O" g<VirtualHost www.baygroup.org> #此处建议用IP
  p5 o5 |; i( @, D3 W- vServerAdmin webmaster@mail.baygroup.org
4 v6 m$ E, m9 z0 w9 i& cDocumentRoot /groups/baygroup/www3 ^& T; e0 S, B2 L
ServerName www.baygroup.org #建议此处用域名) ?. _$ g1 e, a6 A  e8 T7 z8 ^, \2 U
ErrorLog /groups/baygroup/logs/error_log
& {, G6 G8 e* H. mTransferLog /groups/baygroup/logs/access_log8 \& \! i% W* j# z" k" H7 d
</VirtualHost> ; x8 C3 X4 J5 Z0 J  r
/ g# j/ M  `9 n8 T- Z
同时要做虚拟网口或网卡的配置,在DNS也要做相应设置。" e, ~0 a% x2 I& k/ g3 W! v0 G% y# G
4 d3 L/ G- ]+ R: s9 X7 g' A
二 、名字型虚拟主机(Apache1.3以上版本支持)1 g7 n3 L$ i! q, G( a" J
# z% E6 A# o$ i- ]5 C( Q. n
  IP型虚拟主机虽好,但不是最佳方案。它要求每一虚拟主机有一专用IP,在某些机器上难于实现。' r: B. D+ I0 m
! G& l! D% P2 x* J1 ]' v
名字型虚拟主机是指每一虚拟主机的名字不相同,但IP一样。它的好处是不限制虚拟主机数量,配置、使用简单,不需另外的软硬件。缺点是客户端必须支持该部分协议,最近版本的浏览器都支持,某些老版本浏览器不支持。但Apache为此提供了解决方法。
( |, [5 Z6 |0 n& ]$ K* F: B
' |6 r9 C/ B3 F3 [1 J设置方法:
9 ^/ Q( ^1 z! `9 C3 o% U) w& m" M8 U! J. c0 `6 Q" p& G( R
在配置文件httpd.conf里,用NameVirtualHost指令设置虚拟主机,如:* E2 A- a/ `0 E2 F+ x9 j1 E, K) I

- @0 D* I# }: n$ q% cNameVirtualHost 111.22.33.44
1 H+ X) ^$ U4 Z( \% a: M
1 E) [2 ?  }! Z- j! {( N* g/ F' P- _<VirtualHost 111.22.33.44> #建议此处用IP, E5 \3 B8 M, j5 m! `* x$ F
ServerName www.domain.tld #建议此处用域名8 _: x! h# V9 y
DocumentRoot /web/domain
' e) h/ Q& g0 m; i- [</VirtualHost>
7 P8 |- j$ N% n  V* @6 f
; V4 b% o% S/ |0 u8 o( m) A/ X, Z同时,在DNS定义www.domain.tld指向111.22.33.44。
. p' t8 u' l* D$ [1 q+ X: `- @$ G
" b8 o/ D* ]$ X注意:当在NameVirtualHost指令后使用IP时,任何使用IP的URL请求都是针对虚拟主机的,主服务器从不会响应一个使用IP的URL请求。5 G% i7 {8 L( A/ |2 p/ w3 b

! `! N8 A) @( `0 K另外,有些服务器希望以多个名字被访问。例如,假设有某一IP的服务器,希望以名domain.tld、www2.domain.tld都能被访问,做法是在VirtualHost指令部分使用ServerAlias指令。如:0 v" c6 w8 o% t  N1 N& R, D9 e
$ s! A) ?, w# p8 p
ServerAlias domain.tld *.domain.tld
7 q* r7 I2 h  \( K% G6 P3 [- E8 q3 n" A+ @6 p1 D
另附一些虚拟主机的设置实例。
( R" u) r9 D& _) V$ u& U4 E0 M3 Z& @0 c, I$ f+ i
 + j# K  @) ~2 c- G$ `7 b
( d; ~) @: K* D* e
 
' J$ g6 S" y  P# _9 a9 L, b
4 ~* i4 z5 G: ]2 v& H' w附:虚拟主机设置实例4 O1 @" r) E, P; q. _. g7 r
" h5 O. U5 U8 s2 m1 A( m
IP型的虚拟主机配置
- u2 |7 c! y6 F+ A) f0 Q7 }- P& b7 t, _9 G0 E& S
Setup 1: 服务器有两个IP,
, x" o; C; c% g0 R0 q# }- \1 p) b( e2 L& m. g3 e! d8 |
111.22.33.44 server.domain.tld' E5 w7 _) q8 x
  M$ A3 J2 \3 V4 z
111.22.33.55 www.otherdomain.tld
9 n  Y6 I+ g: N/ ]$ q5 Q3 e: G, i! ?& g! Y& o& t
www.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。
! v- h$ v- L& q% A# }+ e
0 S( l) `7 U1 Z; g1 J& j' S3 h6 j服务器配置:' O! ]5 A4 Z3 T! J8 J* U

( ~) d8 g$ N1 s: e# ^8 F& u' d...
; A+ W4 v% a% B
5 t. }* X( z3 {  O" N: GPort 80) E( O' Q, r8 g' u/ I' Z$ r9 |
! T; n, D+ V8 ~% N# y
DocumentRoot /www/domain" T2 P: Y4 I$ P( [, }$ i
ServerName www.domain.tld
7 M$ n  N% @  H& o<VirtualHost 111.22.33.55>( u& i: J4 b" N0 W. T1 E
DocumentRoot /www/otherdomain
/ {2 O. {5 x% J3 C% g: B5 AServerName www.otherdomain.tld4 }- V3 F. Q+ b; W
...
5 }2 n8 `( j" U- z( A  {+ ^: E: E</VirtualHost>
1 }* ?8 Q) J' [, n! u0 F" j* t1 T% \2 q5 K8 X
Setup 2: 基本同Setup1,但不设置专门的主服务器。* d1 {1 i' D& t) _+ @; a2 H8 a

7 _7 K4 _  n! l+ T7 o- c服务器配置:9 {. Z  O% z, N3 q: W( m& @

  u: z1 G5 A1 x9 n2 [7 y...( d6 Y, k: o4 s1 c6 S( |* z

( y8 U" i& K, N# A( A2 s7 s  i5 |8 TPort 80
' m( Z% @5 w+ O  u  c% E4 u3 q2 n: Q$ q
ServerName server.domain.tld
9 U- \5 u. P. Q. h$ J* s9 O. g<VirtualHost 111.22.33.44>1 c, b6 S. w* F: }
DocumentRoot /www/domain
! c6 G: f7 M8 DServerName www.domain.tld& C1 F3 G& s' a+ B
...
! X% h* d8 E, H1 B$ ~; z</VirtualHost>
1 [; Z: \' W; h& [! U
0 t" w9 L  U; n) J0 s0 G<VirtualHost 111.22.33.55>! h& z4 _3 o/ f" f/ V' H( v
DocumentRoot /www/otherdomain# h6 h9 `# j  R. h& R: L
ServerName www.otherdomain.tld; [/ ?4 m( w1 G7 Q
...
# ^) K% U+ D- t) C</VirtualHost>: y1 i' q* N2 J
5 x1 `$ Q& C% b) H8 u
这种设置只有当URL为http://server.domain.tld时才击中主服务器 ( \6 ~1 J* K# {' w5 k; ?
% S3 R! V# b6 g' u* P
Setup 3: 服务器有两个IP,
! n  b- C7 M( p  ]
7 d! q8 o5 s. w" S- j. ^& e( i111.22.33.44 server.domain.tld
& O* b0 r4 n9 Y111.22.33.55 www-cache.domain.tld5 Q  q, I- F4 f, r5 I
www.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。
4 X: b& q. ?. P) m! o7 [1 @www-cache.domain.tld是proxy-cache,端口是8080,Web服务器使用默认的80。
3 y7 _' g3 G+ H; z! {, E* H2 I* i9 ]1 J( b
服务器配置:
- a* H: A6 j/ }% O  ?3 s- {9 D" p% ?4 c: T; w3 I: m- g" y
...
% J: S! }& t) t( J
+ P5 Z+ T4 M( x& {0 ^) NPort 80
' r- ?  u: x( v7 ~
& d5 R% X9 i- K  K( M" D% a8 NListen 111.22.33.44:80
9 ?/ n* g" F& g8 x# C1 MListen 111.22.33.55:8080
- V3 c1 U6 N, W+ p
+ Z! q+ `' s# w! N  Z% C9 `4 TServerName server.domain.tld
& d3 h/ e1 {6 q<VirtualHost 111.22.33.44:80>
7 i4 ~8 n4 w( n% s& a1 ^+ ODocumentRoot /www/domain$ l  l8 D! O) Y3 n2 |( u
ServerName www.domain.tld
& l2 h6 `' ?7 }...7 P( e; }, i  y" T6 `7 N6 F
</VirtualHost>
4 U7 I, P  `; G' f& C6 e1 r# r
' s' j7 l, m2 }. p<VirtualHost 111.22.33.55:8080>  i+ c3 `* z6 g0 i- L6 }9 i$ S
ServerName www-cache.domain.tld
. w, I" u/ F8 V4 p...- V& s# H( A+ @( y* Q
<Directory proxy:>
8 E/ s# I  R- ?# H( n! [/ N3 ]- uorder deny,allow/ c: C+ Y' c( v$ H2 F* h
deny from all
+ r+ f5 Y5 D4 Iallow from 111.22.33
3 G( F' G" J& V- V0 s. z</Directory>. ~; r- s( |5 g  U) ?1 U
</VirtualHost>" F9 C$ _4 _. ?1 t
5 b" i) v3 ~; W% K: p7 Y
 $ L* R* s) `( a& _

; t/ k: Y* H9 n- l名字型虚拟主机配置
  @) v) t; Y+ ~3 n& ]6 Q1 j( N! m+ O  z5 G/ {
Setup 1: 服务器有一个IP,! f3 c- h" D6 g1 b/ L
  S& H+ L+ g# B; w8 _; W4 W8 z8 Z
111.22.33.44 server.domain.tld.
5 C4 l1 c: c9 y: Y) m1 ]
7 w2 g" h8 s" B  m- O! Iwww.domain.tld和www.sub.domain.tld是别名(CNAMEs) 。 8 ]- K$ i+ w4 Z+ o

4 C- r- k' O5 x4 G服务器配置:
! e' e/ D1 c6 n& e* k: i) R& p; b
...4 Z7 S0 O3 x" N

- V0 V# v" [6 d# Z! D  U+ S5 _9 H9 bPort 80
4 m8 f! y% T0 f7 v3 C; ^2 D$ b  Z/ V  }6 r8 s+ _9 U
ServerName server.domain.tld
# E: o+ g2 }2 ^. x: o! FNameVirtualHost 111.22.33.44
1 s. ?% J$ P- m- k) Q4 l
  s- {+ V6 a3 |$ M1 }<VirtualHost 111.22.33.44>% b( X7 y7 r" J: s- l
DocumentRoot /www/domain
' W7 L+ K1 P# C6 ]. t8 z4 p/ y8 IServerName www.domain.tld) b2 ]4 K0 k! x# q6 a7 E: a  b4 {: t
...
, O, c2 s* r; V7 [</VirtualHost>0 G' |- }( K' d" {4 }8 S8 |& A8 `1 I

+ f) V# ]+ _4 u* e# p2 X<VirtualHost 111.22.33.44>! I9 v# ]: p4 G* @4 K  K; ?
DocumentRoot /www/subdomain2 I: l2 J/ h& j
ServerName www.sub.domain.tld- g2 {3 h. {/ b4 R
...5 J* v6 q' i0 B& \( s
</VirtualHost>
! B. ^) [) x2 S* R( ^- o
$ f9 u3 H' ^, d. B+ h0 M' b, B若使用IP访问服务器,由于 www.domain.tld 有最高优先级,被认为是默认服务器或第一服务器。- L* V0 Z5 f$ {6 m& E* b

- @' n9 e% U+ r% G5 Y2 }, CSetup 2:服务器有两个IP,. ~# [, n9 K, C

' r4 p+ j. k7 l  g111.22.33.44 server1.domain.tld 用于主服务器" c+ e+ B# k# E1 t* c, q
111.22.33.55 server2.domain.tld 用于虚拟主机
  p- t5 Y! b. S, |$ q; x& x别名www.domain.tld用于主服务器,
- \# U2 |3 ]4 G9 b别名www.otherdomain.tld用于一个虚拟主机,
9 c, L3 C$ I( `/ `别名www.sub.domain.tld,*.sub.domain.tld 用于另一虚拟主机,
. |; g& b9 A7 L' r
' h, C7 o) c  o7 s服务器配置: ( D- V8 C/ J- q, O; k, Z$ D
3 g& S  R* f# ^) Z5 @8 g0 _; J
...
$ e+ W) L3 m" k; k2 m" M9 y7 s+ U/ O( f* i: {
Port 80
0 |- I8 \- M) J  N, [2 M: Q! b2 K* R
ServerName www.domain.tld; c* c$ V3 p; w; u  V+ M7 ^
DocumentRoot /www/domain
% W. Q' `( ^' z( u; c9 g/ g' VNameVirtualHost 111.22.33.55' L. \5 n6 k9 P2 Q8 v- U6 R# v4 T
<VirtualHost 111.22.33.55>
7 K+ ]# m; m' V1 aDocumentRoot /www/otherdomain  @3 A+ \% }, Z
ServerName www.otherdomain.tld
5 ?7 t+ ]4 h2 Z) X8 d...
. O$ z( i* o# _</VirtualHost>
( E* u; K& r" @% V
# H( t% X* |8 A4 s3 @<VirtualHost 111.22.33.55>0 G' B- d8 S% {6 J( B' [
DocumentRoot /www/subdomain
- U* I' |* {8 o2 `- K  a6 a/ TServerName www.sub.domain.tld
) c) I6 H* ~* I1 g+ |6 T) a0 oServerAlias *.sub.domain.tld
+ F/ b, D1 |  Z' k3 r2 ?...2 S0 P1 \  n  r
</VirtualHost> # m& F& P& A! U# P+ T0 b

& \3 L5 G; }8 [+ t# n$ R' N6 x混合型(IP/名字)虚拟主机配置
# O# }: `- Z: v& r5 _: w( V9 t
* A  ]8 u0 U6 nSetup:服务器有三个IP,
& F' h6 G  }1 K5 v+ p( Q8 w1 `8 k" I3 O4 q: {3 @
111.22.33.44 server.domain.tld 用于名字型虚拟主机
$ u2 ~% P  b# j" |111.22.33.55 www.otherdomain1.tld 用于IP型虚拟主机* m" ~+ x3 o! X1 S7 @
111.22.33.66 www.otherdomain2.tld 用于IP型虚拟主机
1 N5 ]+ M2 E5 _: W0 ^+ S$ B7 a8 j! D( O2 g6 k
服务器配置:! z0 D$ V: W/ _3 W7 K2 S# p
...
' [2 y* X2 R$ t) |' x- p: K$ i  I  X" q9 p  L  G
Port 80
3 O6 ]3 F) S4 |) qServerName server.domain.tld
2 `9 i  V/ \2 I3 `7 V. k. X
4 W" R6 p* {$ I7 ?NameVirtualHost 111.22.33.44
% I) ~" M. {2 }2 c
' G' U6 y( P4 l: `* B. C! n, h+ ^2 K<VirtualHost 111.22.33.44>
4 u2 W( ^7 [; @6 J/ e, K: ~# bDocumentRoot /www/domain8 Y8 C0 k# \1 q# N5 S' ]2 d
ServerName www.domain.tld( @3 Y/ d! W2 H9 j0 R* y
...
7 x8 q1 C$ B8 o3 c- o</VirtualHost>; e: {' C" X* x, h# x  {5 W
+ H: w; h& ~1 Y* [# j! j1 A
<VirtualHost 111.22.33.44>
) d  S) s# f4 N; U4 Y6 I3 fDocumentRoot /www/subdomain1/ P5 I' I' ]+ \% f' D( c: n- E
ServerName www.sub1.domain.tld2 J. g1 e% ^$ f( Z4 L; B, {
...
( ]. j2 I2 f0 J0 Q' n% J9 m</VirtualHost>
- q8 Z" H6 V. i& j% s! g* [6 k: _: a6 S" X( ^. W6 f. x
<VirtualHost 111.22.33.44>; R( C4 I1 d4 F" f
DocumentRoot /www/subdomain2  Y4 _+ q) X. [" k! g
ServerName www.sub2.domain.tld
. X8 Z7 W9 X2 H! p4 T) Z+ I...& b* A" w4 ]* T, c) |
</VirtualHost> - \5 p( `0 h, ~. t+ G

$ I$ V2 d- @6 X5 h<VirtualHost 111.22.33.55>; e- B5 k, R5 ~4 T1 j
DocumentRoot /www/otherdomain1
% T8 d/ ]  i4 J5 \4 UServerName www.otherdomain1.tld
. a9 ~  v7 t" V4 \# n9 K& q  B4 t...0 d. {. `# k. y
</VirtualHost>
% T4 p2 v! s# E2 s& g9 k1 A( q# h% d8 S& v0 ~( ?
<VirtualHost 111.22.33.66>% |5 Q. ?, P- n, J- F5 w
DocumentRoot /www/otherdomain2/ M6 j* Q: p5 z3 B0 k4 a6 u
ServerName www.otherdomain2.tld6 j" e8 p3 A# Y& e' l, ]
...
, K, P6 S0 `. ?: N! Y; M</VirtualHost>
( u9 ?9 N! n% w: P, K3 v- w% @9 N9 _5 P
端口型虚拟主机配置8 J8 c1 e( z$ O1 h
: K" ]; `) w+ X# g; W' n) u
Setup: 服务器有一个IP,
$ ~& f5 K. v* x9 d- m' Z* c+ X' o
111.22.33.44 www.domain.tld
* @; s; h+ w2 `0 [
7 B( X6 P4 _7 ~6 D( T/ K( Q不需要另外的别名或IP,采用端口型虚拟主机即可设置一个配置有别于主服务器的虚拟主机。 : R) s- ]: j8 `

$ E0 I( j" ~2 r( G8 F服务器配置:
5 h' i9 e7 t2 L1 T# e- J6 w...
0 H6 a  e- h8 ?
9 Z) z# j1 `% A" K+ L0 [8 PListen 80. Q& T9 J3 L/ b. q$ g7 y- I1 g, B
Listen 8080
+ m$ w3 L) O, S. _% ?& o# `
8 |* M$ |' n% o5 O0 Z) nServerName www.domain.tld
# J4 X! K) R% m  U1 i8 J0 eDocumentRoot /www/domain: f# z6 G( Y9 O- n

$ A% N! k+ x- p) V( @; A. P4 \<VirtualHost 111.22.33.44:8080>; G; p: I! [& D1 ?5 O, Y+ H/ L, m
DocumentRoot /www/domain2" m, N) M0 n8 |) a* ^/ G9 H
...* r: C/ z" ]7 q% [* m
</VirtualHost>' ~# p& r8 [( [8 h( @( r; ?

2 o: X7 {8 j+ M1 T; Q3 | 
( x- n7 Y* h1 o% c
& Z) [" W$ y2 p) P" l2 Q来源:http://fengyu.china.com/Vhost.htm
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-10-2 00:12 , Processed in 0.015723 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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