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

使用Apache Server设置虚拟WEB

[复制链接]
发表于 2003-10-12 13:37:43 | 显示全部楼层 |阅读模式
unix 平台与NT平台使用apache server的设置相同。以下重点以unix平台为例' r% b! I* g. j/ g$ }2 q! ~  Q
说明apache server的设置。另外值得注意的是,虚拟web的成功设置,有大约
- `0 s- E0 P% {# p50%的工作量是在域名的注册与解析方面。所以一般先注册好域名然后再做0 B4 c- E7 a% h, `6 ]3 Y
虚拟WEB设置。& V; B, h; C0 \. A6 |2 ^# `) }
  T# o9 t% H! d) B1 ^
一 、IP型虚拟主机! L. }$ P$ v$ t3 b- \
8 d/ z" k0 ]$ t* e
IP型虚拟主机指每一虚拟主机对应唯一的IP。可通过多个物理网卡或虚拟网口实现多IP,Solaris2.5和Windows NT都支持这种方式。
  D' G; L- _( ]0 P
! c- d& `: i. b' h2 Z" B两种配置多虚拟主机的方法:
0 S4 A6 f2 f6 k  }% p" k
8 ?, M) U+ ?1 j& M' C1、为每一虚拟主机启动一个httpd进程。
: o2 q! n( l' ?1 m) i! P5 D9 U7 H6 p' V3 M. R2 d, P  n
下列情况下使用此方法:+ m' W$ T9 N3 r
% g, W8 G9 X2 Q2 f! J$ D
? 需考虑安全隔离问题,如两个httpd运行于不同的User、Group、Listen、ServerRoot,两者用户除通过Web相互浏览数据,无法访问其他数据。
- o) Q: N) ~" H* @9 d
$ v7 L" |4 x, @0 l7 O' ]? 能提供足够内存和文件描述器。
1 k0 B3 W; t) @8 w+ k3 e  s0 o2 |3 L+ V; V$ l" v% M
设置方法:
. i  j8 J$ O. q, v/ m4 ?0 h1 j% V& f- c9 {/ z: w1 T& l7 v1 E6 A. j
为每一虚拟主机建立一个独立的httpd安装,在每一个安装路径的配置文件httpd.conf里,用Listen指令指定进程服务的IP,如:8 n/ ^# V+ \" v2 a! w( F% t, \& I

: q/ D% P' O+ s6 m- M& `Listen 10.68.37.10:805 u; O8 }% a2 U* J# M4 w2 a6 z7 e/ U
9 W; Q. U3 R4 m/ P5 P5 ^# y
2、为所有虚拟主机启动一个httpd进程。
$ c* A. t" q5 l2 n0 O9 ^( E/ S4 n$ B; h, |( o2 K
下列情况下使用此方法:
: b0 E$ u% n! ]1 i' d, s6 x% @; u% ~% }
? 允许在虚拟主机间共享httpd配置。. H( Z7 ~) ?* O" ?: N

$ b6 t: l! `! }1 E) o( n( E? 计算机服务于大量的请求,运行多个进程使服务器性能降低成为重要考虑因素。
7 v9 E5 X/ z: g7 v- j3 ?" E4 s" B' C/ S0 \
设置方法:
6 O. o; C! j7 ]: x. n& n8 B: |5 w% m+ i& C
在配置文件httpd.conf里,用VirtualHost指令为每一虚拟主机设置ServerAdmin、ServerName、DocumentRoot、 ErrorLog、TransferLog或CustomLog,如:- D  @% O+ I9 I6 y, }- D# O/ j8 z

9 X- o' b, w8 T<VirtualHost www.smallco.com> #此处建议用IP' B) |. ]5 b/ D  f+ A5 j6 Y- @) j' o
ServerAdmin webmaster@mail.smallco.com8 [( {8 S, B8 v* x
DocumentRoot /usr/local/etc/httpd/htdocs/smallco/ v& S3 F% l( P' l
ServerName www.smallco.com #建议此处用域名
  j& D  d* J5 q/ [8 w* cErrorLog /usr/local/etc/httpd/logs/smallco/error_log
& f8 }( d- H/ F* rTransferLog /usr/local/etc/httpd/logs/smallco/access_log
. s1 K" J1 |0 z% t, v2 r! s' `- ?</VirtualHost>
+ S5 W' j$ t- Y! Z/ X' _, Q% i% q
8 e; P1 E$ E. C# o<VirtualHost www.baygroup.org> #此处建议用IP, b7 l  V8 L4 E
ServerAdmin webmaster@mail.baygroup.org- F8 |6 L+ `7 ], y; q2 }/ u0 T7 U& L0 d
DocumentRoot /groups/baygroup/www
. `* {9 _0 N+ d/ v- TServerName www.baygroup.org #建议此处用域名
' E& Y  o! w3 N& T% z# O9 c+ M5 QErrorLog /groups/baygroup/logs/error_log5 \2 l$ k. t" M
TransferLog /groups/baygroup/logs/access_log
; p  e3 Y$ C9 w/ J' I% `</VirtualHost>
, u! Y- w, ~8 c3 p& k5 L# x
9 M) M# l  }7 \同时要做虚拟网口或网卡的配置,在DNS也要做相应设置。4 k2 C& k: D  h4 A. c
" c+ J9 V) j7 G& i' Q3 d5 V- p# }/ @
二 、名字型虚拟主机(Apache1.3以上版本支持)
( a' i5 p# |# \# v
& L9 M! f/ x/ o/ @4 c  IP型虚拟主机虽好,但不是最佳方案。它要求每一虚拟主机有一专用IP,在某些机器上难于实现。2 g0 W: M! C) e1 p/ x4 [2 D" c7 M

( ?4 g$ C9 Z/ u2 f8 @  Q8 n名字型虚拟主机是指每一虚拟主机的名字不相同,但IP一样。它的好处是不限制虚拟主机数量,配置、使用简单,不需另外的软硬件。缺点是客户端必须支持该部分协议,最近版本的浏览器都支持,某些老版本浏览器不支持。但Apache为此提供了解决方法。
. L! Q1 }& l/ o# ^# t2 e5 N; x. B+ t3 e  w4 o+ L$ H( ~
设置方法:
4 M7 o) c- T7 Z( |
: E0 j. d% q6 I4 z. g( f9 t在配置文件httpd.conf里,用NameVirtualHost指令设置虚拟主机,如:
7 t# n$ G8 x7 l/ B, ]4 }$ O; I" S4 V; ^- k" \: j; ^+ F/ [
NameVirtualHost 111.22.33.44( L/ x, W! N9 r& H' B3 J9 ~
7 d) e) ^( C/ z4 d( p' A, T2 K
<VirtualHost 111.22.33.44> #建议此处用IP
) C9 D5 k. `& H- f) Y: hServerName www.domain.tld #建议此处用域名
1 K2 _4 a7 d4 |DocumentRoot /web/domain$ S3 f8 d3 D+ N' q
</VirtualHost>
, C& m* {; [; t5 E0 U: F8 `) K, m6 K0 Y. t/ c# d
同时,在DNS定义www.domain.tld指向111.22.33.44。
8 z- H, p$ o) Y9 g4 M" Q. f' z0 f  B& V6 G; d& O! n
注意:当在NameVirtualHost指令后使用IP时,任何使用IP的URL请求都是针对虚拟主机的,主服务器从不会响应一个使用IP的URL请求。
1 I8 D0 j. A0 A# d5 t+ m
4 M$ u; N! p+ w- F. r" e另外,有些服务器希望以多个名字被访问。例如,假设有某一IP的服务器,希望以名domain.tld、www2.domain.tld都能被访问,做法是在VirtualHost指令部分使用ServerAlias指令。如:
2 p9 V4 N! Y  L# r; U" N+ p. l/ e. C2 X* y8 m& k- x& }
ServerAlias domain.tld *.domain.tld
6 Z9 F  J# S  _+ S
; b% H# s6 n# t% g# p4 _2 i另附一些虚拟主机的设置实例。
8 B) t3 |; {: k* P  a. e* e+ |! Z1 S
 2 c8 S/ U4 e7 A

& }2 Z$ v' v1 {8 m! I: s . E6 e/ t& f1 u9 k

, g' ]& Y, f) e& ?, Q+ x5 U附:虚拟主机设置实例
- G7 [2 s  a/ @% x, L2 J/ F, ?5 _
" y3 _4 d, H. ?) K/ d% H7 ?1 wIP型的虚拟主机配置
% ^$ S! _% o' ?& O* V0 ?$ v. ^2 u  P5 Z& ]8 S9 }% ^
Setup 1: 服务器有两个IP,- C5 x: a8 [0 w" Y
  }/ f' ^$ G0 S0 m# \: C
111.22.33.44 server.domain.tld
' [4 T2 O- }. a* F" W2 T5 D* P& S7 b
' w5 O% ~% v' Q4 ^( v( f  b111.22.33.55 www.otherdomain.tld
- Z% J5 D7 }/ c. @6 k6 }0 f( }# Y$ Z; N7 m  L. b9 e
www.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。
# q& b5 M$ b' Q& N6 I6 |3 W# z1 c3 X* U) u4 O" ]0 G
服务器配置:  h& E0 w: n% q0 l8 ]
4 s  P8 @) N  U5 W  B" ^" ~3 S
...
' W2 p( k3 Y! q5 k  K- e
% j5 H& d8 o6 L  D, iPort 80
- B* C- D. f7 Y: v- `) r9 y6 Q: r1 S3 A% m& l
DocumentRoot /www/domain* E# i0 Y9 S- d6 |4 D' s
ServerName www.domain.tld9 R! D8 D# B- O* E1 l$ K: L' {
<VirtualHost 111.22.33.55>
( C, Q  }+ @( O% y2 ~DocumentRoot /www/otherdomain( P) n/ V) c9 P) [7 {. I5 b
ServerName www.otherdomain.tld; W: ~! J, z5 Z6 f( F' L4 s
..." |# q# [" |# z6 j2 O0 o3 o9 e0 N
</VirtualHost>
/ ]3 R: L9 j; C7 e3 z/ j+ f' R8 V7 ?1 w
Setup 2: 基本同Setup1,但不设置专门的主服务器。) }5 u7 R) S1 q  N# w
' t( W/ Y1 G# n* }
服务器配置:
+ ~9 y' x6 [6 c; x8 r: |* V8 P3 c+ _3 u6 V4 l; Y8 ?0 K" D" G- }
...
) _9 [3 r( ^, J; @  i! O
2 d0 `. O$ j8 K6 K* Q5 f% P! ]Port 80/ w+ @2 o( W" |( D, {3 |
/ u# U* @' L( I* S/ z" o
ServerName server.domain.tld$ T" ~+ L( b% |* b! b
<VirtualHost 111.22.33.44>
3 s0 ~4 @) h9 q& q# L. J! \DocumentRoot /www/domain
6 k3 @$ l4 n4 \' u4 v, X+ C" uServerName www.domain.tld
2 m$ @5 p5 U- G- w- c4 q...( |9 s4 H2 _* w
</VirtualHost>' ]' a: E- f. h* Z
% U0 ]$ V$ J! r# l# [2 T  a
<VirtualHost 111.22.33.55>7 J: S0 k4 E& c7 g2 b$ j; m
DocumentRoot /www/otherdomain
0 h8 g. Y" w8 W5 a) S9 uServerName www.otherdomain.tld
* n' i, H" ]( q  _1 t) t2 b...1 H9 `' i! N6 c6 l( ?' `" V' L+ z9 |0 r
</VirtualHost>
% N' m7 |) E8 ?# h6 ^. n3 z, B9 `: I) b5 W
这种设置只有当URL为http://server.domain.tld时才击中主服务器 % F# g0 s/ G/ B! e
7 r1 V- ?/ X" K$ `
Setup 3: 服务器有两个IP,5 }4 B( ?1 I; V, s
0 |4 ^0 e4 X" G. n7 k
111.22.33.44 server.domain.tld/ a( l5 t' C! T
111.22.33.55 www-cache.domain.tld4 C$ w% s6 [' [' U8 P* a
www.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。+ @" \2 V* @: u  n8 ^8 ^' f
www-cache.domain.tld是proxy-cache,端口是8080,Web服务器使用默认的80。# O9 B9 @9 o; u) F
. e8 n1 b% v. \
服务器配置:
6 b/ U" N) ]  P. h( C2 a
2 {6 [) \# ]1 v" }8 T) I...
( y% {1 J% S3 A* d7 V3 P; d9 Z
: M9 X: y8 _; [Port 80* S+ I& Z$ J( c6 S" _" [/ f

% e7 f% s, R& H( p) iListen 111.22.33.44:80$ v, @" O! r; r- \. [( |  ~
Listen 111.22.33.55:80806 t3 f2 v6 E' w1 i% A+ f

. {9 G; t  H! l+ B8 T4 U4 ^8 `# qServerName server.domain.tld
: ?/ E6 q: C, \- L<VirtualHost 111.22.33.44:80>/ {0 G' ?5 J2 ^, @  d" s
DocumentRoot /www/domain. M# u4 ~( e# L! I: N' A) _
ServerName www.domain.tld' x) V& h; Y8 X3 w
...
$ k9 I) f+ j+ i6 s</VirtualHost>
3 T5 {& @$ E) h. _. U# v$ o; r0 W* Q4 }' D- U" k/ `3 E
<VirtualHost 111.22.33.55:8080>6 Y3 N" k$ B, G
ServerName www-cache.domain.tld
/ F9 ]' g- [, q% h, o...
9 w0 x: K' d- Y9 u) ]5 K" [: k<Directory proxy:>% o6 e8 `7 f: h+ k2 R4 @- D
order deny,allow
. s$ x# o2 C& b( v/ g! A- X2 Tdeny from all" p+ w4 r4 {) @- ?$ u4 E$ ^6 ?+ d
allow from 111.22.337 a$ F% `( m0 ], A( V& `$ m
</Directory>
; B2 A$ B; v% `+ U) P</VirtualHost>
: G$ C+ w4 O2 y6 F- }+ x5 Q/ u7 l8 ]6 ~; D) U& L) t6 J& [9 k$ }; W
 % h4 {. E0 a8 O0 ]. M8 T

* P/ Y" H8 M# D: J" h名字型虚拟主机配置) ^! \5 L1 o1 P/ w  T3 @! |
# R! v: O6 l9 n+ ^* l2 |9 X. S4 J& k$ n
Setup 1: 服务器有一个IP,
" C! F( |4 Y5 l( K3 G. {" n
% L3 b8 u* _+ K" s% u111.22.33.44 server.domain.tld.
, t+ t6 Z3 B" N& H% Q
! g/ @1 T. }) f. e$ j$ @www.domain.tld和www.sub.domain.tld是别名(CNAMEs) 。 - Y* S) H9 m. g% N9 K9 n; c

2 U8 F4 B: L/ E3 B服务器配置: % w( W9 r' ?, i7 n( H8 H, l
3 ^4 k' B3 g8 ^( c% }, R* H
...
" D6 p5 y/ X- W1 X' I& ^5 J9 c7 \
) W* Z; w6 V- j. @- Z! _Port 80
5 C; R/ E. R3 N6 l. `
. C7 `) p% s# {) Y% x. pServerName server.domain.tld
8 v5 g+ k" P- {NameVirtualHost 111.22.33.44
' m' M' j* M9 `$ m' }4 N$ \9 p1 H" E' Y5 r9 L) P% P2 R
<VirtualHost 111.22.33.44>
6 w  P/ a4 m9 [- x, t% T# |DocumentRoot /www/domain4 I" ?: S# A- N) N
ServerName www.domain.tld
8 u3 R* C, T/ `  s  \( ^/ b...7 l. P( }1 X. f
</VirtualHost>
; p, ]3 ?  B" |, X% W! n; x
' y, v4 Z) d" H# w: |( l) M<VirtualHost 111.22.33.44># g# U- B. ~  F# F/ u( c7 x" w
DocumentRoot /www/subdomain+ f2 Z7 |- ^. T6 m  L: ^
ServerName www.sub.domain.tld9 X" C1 l2 k: l2 u. N
...% j* h* ~: L8 g- Z
</VirtualHost>
! d4 T7 y4 O6 t  H1 d, m$ u
  g- B* Q1 m) j0 c若使用IP访问服务器,由于 www.domain.tld 有最高优先级,被认为是默认服务器或第一服务器。5 h7 v" d4 v( A% n( G3 \  b  X

! V1 n* r# C, c  zSetup 2:服务器有两个IP,% s' |+ ]& W' j

" |3 c! ~( C* I4 R- g0 g111.22.33.44 server1.domain.tld 用于主服务器: m4 Q' j/ c# O' K9 n9 x# T
111.22.33.55 server2.domain.tld 用于虚拟主机
+ N$ _. r3 E1 J# O5 v# H别名www.domain.tld用于主服务器,
6 w5 C0 ?8 F. Z- O! D- Y! z- ]; G别名www.otherdomain.tld用于一个虚拟主机,! k! ~1 u: t# n# {6 P" L
别名www.sub.domain.tld,*.sub.domain.tld 用于另一虚拟主机,
0 x( z. n9 M1 b0 e5 o' ]/ O+ \. m7 W9 c0 a% M6 d
服务器配置: 3 e; Q, h0 H- @1 l) e2 o& p' |& Y5 I! v
* _: t/ J. G& x( w# X& h0 Q
...6 U  z/ H, `" u0 M$ g( i

& Q9 E) F+ n* l# W: \. }5 qPort 802 }+ b3 y( s9 t1 o- B+ R
7 z. I7 t( L+ {. C% A% s& N
ServerName www.domain.tld
( O) j- S# t, ^. x2 qDocumentRoot /www/domain, P& V0 @& y$ ^/ U
NameVirtualHost 111.22.33.55  |' y7 R( B. X" }9 r
<VirtualHost 111.22.33.55>
0 i# }1 ?( _9 s# k2 r* j) uDocumentRoot /www/otherdomain
& X" X5 }% Y  i* P; t% HServerName www.otherdomain.tld- {  x. Q4 r3 w  J1 m- J6 n
...2 L0 w4 i- m3 \9 V. r
</VirtualHost>
5 V% O& w6 a8 @8 v
5 K# ~. U# S3 j" q- i<VirtualHost 111.22.33.55>
) ]7 a) X* A" fDocumentRoot /www/subdomain
0 P6 Q. q( J& Z% aServerName www.sub.domain.tld/ t/ `8 G+ M( a: a
ServerAlias *.sub.domain.tld
# B# O3 H. q7 N# `$ B0 W- ]...1 x1 B! Z" A- n/ i. n+ y  x: i
</VirtualHost> 5 Q2 _6 y' H+ y3 ^" h
/ W: `& z0 Q& @3 A' b2 q+ l, C
混合型(IP/名字)虚拟主机配置, r- y: _4 V! w7 Q' _1 k9 k

  S1 U* F6 s* oSetup:服务器有三个IP,
, G) V8 E7 V8 d6 l- E6 \: F; L+ A0 k+ A2 k
111.22.33.44 server.domain.tld 用于名字型虚拟主机
( Z" s! G& p. W0 N  @  t111.22.33.55 www.otherdomain1.tld 用于IP型虚拟主机$ }# c" a5 C$ Z' N, w9 {  x
111.22.33.66 www.otherdomain2.tld 用于IP型虚拟主机
) M: @2 l7 ~8 u2 l0 A! q8 g  K5 L/ k* I0 S  c
服务器配置:
! T6 C/ x' p0 k. ]8 n7 ]& [4 n...4 D, Z! r# Y( m# l8 b5 }2 v* @
/ [  L; h; _( b2 u8 C( ?
Port 808 Q& g0 z2 S: b0 M: M# q* m4 @
ServerName server.domain.tld( N9 ~+ I+ Z3 D9 ^+ x- j

; V  ^- J3 r- i, wNameVirtualHost 111.22.33.44. Q$ ]0 J  x3 X

/ a+ Y. l" J) k<VirtualHost 111.22.33.44>( K2 c8 y6 l0 E$ \! O' p; z% X. x
DocumentRoot /www/domain
( n2 n. i, H2 h' y$ H4 `8 AServerName www.domain.tld
4 U. U% w0 M# Q# a  a4 a0 s* b...$ P' ~) p# G' P- z8 C" Z) ^7 U
</VirtualHost>
% N. d9 l9 b. m5 ]( L# A2 P9 r
4 X: P4 a% ?( e9 p- g  j<VirtualHost 111.22.33.44>
# G: m  F6 h0 }4 X' t, JDocumentRoot /www/subdomain1! ?& F7 z! L: T0 t3 m5 q
ServerName www.sub1.domain.tld# b% g: u, n* R9 ~" K2 w
...! w1 ]3 t. G7 b' _1 T
</VirtualHost> " S5 S0 x1 i+ t: s1 o+ N
. c; f* ~. ^! J, @8 e- q6 D
<VirtualHost 111.22.33.44>
: l! p$ O; K( m) P* L7 A" EDocumentRoot /www/subdomain2
; Z/ L, K$ E+ o* d, gServerName www.sub2.domain.tld
  J% E0 d4 }8 \! _( D; L...5 I2 G  E- ^- z/ u- N+ n' R' B
</VirtualHost>
( J. ]8 X4 n7 C+ P0 s) V# S( x* i: P( b7 c
<VirtualHost 111.22.33.55>  C/ S5 M, i) ^/ B# }
DocumentRoot /www/otherdomain1
9 ?6 A1 p" C! P& M% \8 cServerName www.otherdomain1.tld
- B0 _/ P& {9 E...$ J/ M# w! h4 p
</VirtualHost>
/ }  i. O6 }0 M$ k( }% _; E0 d2 G( Y: d
<VirtualHost 111.22.33.66>& z1 h5 h# N9 C2 `3 }$ B" u7 z0 E
DocumentRoot /www/otherdomain2
4 h3 z7 W' J9 kServerName www.otherdomain2.tld
3 P+ X$ h9 r. q3 y6 i# F...5 x: r8 W8 d2 m# e5 V
</VirtualHost> 8 o+ ^' T$ ~) g0 N

3 D# ^+ c- \. [" J$ x6 P# y! l端口型虚拟主机配置
% Z, @- f3 T, ]9 g
( N' B3 S& o) z7 O4 D: S& bSetup: 服务器有一个IP,
6 [& i7 P; n) n2 U' k" H  W4 g; B' h9 \- E3 s: K' m' H7 }
111.22.33.44 www.domain.tld
& {. A  P( M/ F( Y2 g% l
0 u& Q, }& W# K  m, \# e不需要另外的别名或IP,采用端口型虚拟主机即可设置一个配置有别于主服务器的虚拟主机。 ! x8 E$ a" u6 l' C- s

7 q& T4 k; H  v服务器配置:
/ l! Q8 Q. K$ r0 H...0 S1 k0 Z7 L1 g7 P# {  P: Y
0 V) ?* X- ]3 b, O
Listen 80# g9 h  c- Y+ _* [6 N
Listen 8080* M/ A( ^% R8 @  K: ?1 m- [

; U4 I2 d' a8 Z, S& KServerName www.domain.tld
$ [1 |7 B( W4 U) R9 |% i8 V7 U7 kDocumentRoot /www/domain
8 K' {0 K/ K1 Q" [! W0 c
, S1 }/ o: j4 A+ G% X<VirtualHost 111.22.33.44:8080>3 P7 ^1 w, d4 `9 ~& S# C% ^4 G
DocumentRoot /www/domain26 ]/ }3 r. f. e) a( E, X
...# L! }4 F& y1 @. B+ g" W
</VirtualHost>
3 R9 A; E4 w4 s3 m
2 v1 ~: ^  {' y9 R+ @6 u 
$ u( V3 R& w$ p2 @: j+ o* ~4 I3 r: F0 ]
来源:http://fengyu.china.com/Vhost.htm
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-18 14:38 , Processed in 0.017837 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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