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

使用Apache Server设置虚拟WEB

[复制链接]
发表于 2003-10-12 13:37:43 | 显示全部楼层 |阅读模式
unix 平台与NT平台使用apache server的设置相同。以下重点以unix平台为例
! l  f. a: a3 D8 t& \/ D! K说明apache server的设置。另外值得注意的是,虚拟web的成功设置,有大约' Y5 P5 N! r0 y
50%的工作量是在域名的注册与解析方面。所以一般先注册好域名然后再做
- A" m- A, w5 q  Z# g& [虚拟WEB设置。2 }) H( }5 }* H  k# [  `& M, `; m

3 R  w' f" M) a8 I一 、IP型虚拟主机
9 ~/ |- `3 A6 i( w. p- h
7 X1 l% V6 ]7 `# F; TIP型虚拟主机指每一虚拟主机对应唯一的IP。可通过多个物理网卡或虚拟网口实现多IP,Solaris2.5和Windows NT都支持这种方式。4 t% f0 H5 W8 c& J
: q6 V/ T6 o: T9 L
两种配置多虚拟主机的方法:6 }2 A. p/ X1 e+ ?

* `5 Z9 R- ?: ^. g1、为每一虚拟主机启动一个httpd进程。# E9 r+ B' a: H  F

. ~1 r# h) e% _: ^5 i2 ?! g; w. x8 \下列情况下使用此方法:
* a$ n; F* j  Q7 V
$ X1 T% W, M2 T  `: y. x$ x5 V? 需考虑安全隔离问题,如两个httpd运行于不同的User、Group、Listen、ServerRoot,两者用户除通过Web相互浏览数据,无法访问其他数据。
! L4 i6 V4 Q3 p: v9 X- }+ `8 m: b" h  j
? 能提供足够内存和文件描述器。. p5 m/ l" A: L& X

" u) t0 W8 L1 u& W0 S设置方法:) |% h  T" g( m
/ `! ^5 `. j) p3 r4 u
为每一虚拟主机建立一个独立的httpd安装,在每一个安装路径的配置文件httpd.conf里,用Listen指令指定进程服务的IP,如:+ ^( M; B% D. V9 E4 ]8 |

$ k/ M. P) f( w3 T3 ]* \, H) l2 W0 ?Listen 10.68.37.10:80" a5 }! g2 J/ \2 H0 `: O: C

/ a& h% Q) D  k9 o& ]. Z: ^2、为所有虚拟主机启动一个httpd进程。
9 ^8 G; _* S: w& A% Y- s. H  @! d- z2 h4 i4 D
下列情况下使用此方法:; I2 w3 K0 T2 i$ B' E6 |3 g
3 o. N. T! H4 \( v/ E- @
? 允许在虚拟主机间共享httpd配置。2 d$ q. C" M, H" ?) u# P5 `
9 N' F. L; I: {  t
? 计算机服务于大量的请求,运行多个进程使服务器性能降低成为重要考虑因素。- ^9 g0 {5 }( e" U; o& `# V. @

5 f' K# n+ A7 c+ E5 P! L$ C设置方法:
# P' Q3 \; P: ]9 q, o5 L0 W( `. w% _. x0 |) d5 G3 b, j. m* t
在配置文件httpd.conf里,用VirtualHost指令为每一虚拟主机设置ServerAdmin、ServerName、DocumentRoot、 ErrorLog、TransferLog或CustomLog,如:
% u3 P  t4 M% a* k7 Q) @( c+ B& y$ V7 p( X. q. d" I
<VirtualHost www.smallco.com> #此处建议用IP
' q# L" k% p; t( \; s7 QServerAdmin webmaster@mail.smallco.com
# p3 f1 d4 H% ^, i! r5 t8 cDocumentRoot /usr/local/etc/httpd/htdocs/smallco! _& p4 D  t4 ]5 n# j  v: A' S
ServerName www.smallco.com #建议此处用域名
8 O9 I( k$ W' d' Q* z' }0 OErrorLog /usr/local/etc/httpd/logs/smallco/error_log
7 e3 M" }# u. T1 Q* z7 eTransferLog /usr/local/etc/httpd/logs/smallco/access_log7 q9 h0 R0 Q3 ?( L2 x& {. I
</VirtualHost>
0 C* O# G& ^$ N) k' e: {- I! a9 G: u3 X) A1 c
<VirtualHost www.baygroup.org> #此处建议用IP
3 Q, C; Z. f' o6 uServerAdmin webmaster@mail.baygroup.org9 f1 F) ^! n% K
DocumentRoot /groups/baygroup/www+ `, g& e$ s, l: ]) s
ServerName www.baygroup.org #建议此处用域名
  d% Y2 f7 A3 t7 f0 c# v& M* @% rErrorLog /groups/baygroup/logs/error_log
: b$ F+ \2 p8 H! O4 iTransferLog /groups/baygroup/logs/access_log9 l4 d- Z5 c' R$ W, @  c
</VirtualHost> : J- p! H# w0 n% X. v
3 n$ [2 Q" x4 N/ z# g
同时要做虚拟网口或网卡的配置,在DNS也要做相应设置。
0 A/ r4 n, a0 T; X% K+ M5 a" Z; P" t) _: i" M& A: @
二 、名字型虚拟主机(Apache1.3以上版本支持)+ J- e! P2 z7 H8 Y: {4 M
8 f# e: l/ P8 p  w
  IP型虚拟主机虽好,但不是最佳方案。它要求每一虚拟主机有一专用IP,在某些机器上难于实现。& }7 I3 ?/ p/ \# ?1 d
7 R; l! O" e, i9 B5 V( D
名字型虚拟主机是指每一虚拟主机的名字不相同,但IP一样。它的好处是不限制虚拟主机数量,配置、使用简单,不需另外的软硬件。缺点是客户端必须支持该部分协议,最近版本的浏览器都支持,某些老版本浏览器不支持。但Apache为此提供了解决方法。" [" \( n% m$ p. c, T# _" j) c5 t# b
5 q: I- R/ |  ~7 |
设置方法:
9 g, T0 D  x) G. q! o, \/ Z; G. U. e7 i' n  i" s5 P+ {! k
在配置文件httpd.conf里,用NameVirtualHost指令设置虚拟主机,如:
' P! L5 B$ t2 _2 @" ~/ g! e% I8 T; k6 |+ U& e
NameVirtualHost 111.22.33.442 A. Q( {/ O: X( F

" q9 e) H6 s8 l+ S<VirtualHost 111.22.33.44> #建议此处用IP
$ s6 D$ F% H1 P3 u. Y8 CServerName www.domain.tld #建议此处用域名2 y  c' m) y! P8 I1 Z& ^$ ?
DocumentRoot /web/domain
2 Q+ T  V0 k- k</VirtualHost>
% o+ a& H, j& M" y8 J
; [6 x0 s7 z8 c9 W8 D2 s  P" w$ T/ z同时,在DNS定义www.domain.tld指向111.22.33.44。# \+ ?0 X( f6 D, z) j# v5 t. c
0 r7 W+ Q. A' W1 t& i8 p8 S
注意:当在NameVirtualHost指令后使用IP时,任何使用IP的URL请求都是针对虚拟主机的,主服务器从不会响应一个使用IP的URL请求。, G4 P2 @. t! ~2 f

3 G' n4 a- g# a, N1 _$ v; b# A) m另外,有些服务器希望以多个名字被访问。例如,假设有某一IP的服务器,希望以名domain.tld、www2.domain.tld都能被访问,做法是在VirtualHost指令部分使用ServerAlias指令。如:8 F5 Y& B7 |6 L+ @2 k" U, O% A
( d* b9 \- v: B, f
ServerAlias domain.tld *.domain.tld# K+ }" w0 t8 b! `# @( ]. T

2 ^/ Y7 b( p; A% ~, k另附一些虚拟主机的设置实例。 & Y; I  [: S) v; y6 l6 P
. @; V0 l3 ^+ D5 t: i, V5 d
 
* G7 [" l( R- A
/ S0 A& i5 I; W+ F 8 E/ Q4 F/ P& H- b; g+ R; a; Y
4 R/ s! |9 A# h- x* a7 z0 v
附:虚拟主机设置实例
, M2 y6 [- d. K+ N' c( o, N1 S5 Z9 l$ L) Y
IP型的虚拟主机配置+ H7 r7 @9 T% ^4 Y, [# p

( h" T7 l8 q0 M# `5 bSetup 1: 服务器有两个IP,
9 |) j' r; y$ @# [6 n! d; A, H( }: y
111.22.33.44 server.domain.tld
9 M9 @" O. b  Z3 Q; F7 n2 \* H) {
2 H6 f) J6 g5 v$ N: t; \111.22.33.55 www.otherdomain.tld
( Z4 o3 n* D  C; U' s+ X' }  }  v, f* {
www.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。5 a) z: p4 Y) Z# U3 X; E
) [  M7 {0 x; T3 c
服务器配置:
2 q) C2 b8 F& w# N( }
. y# e6 x; W; G8 ~  l/ j...( L/ j$ a; f/ Y. n# {

8 j8 k* p( c3 d1 A# n1 mPort 80& G& e% ], L0 M! j5 o; x
# w4 p9 @) E8 `1 w
DocumentRoot /www/domain
# o' M0 {( J6 ^. ^$ l8 v9 ?ServerName www.domain.tld) U5 @- S: m2 o5 z3 R# h1 q! R" v. B
<VirtualHost 111.22.33.55>
. q" B+ v; v, G6 a# L) |4 f% DDocumentRoot /www/otherdomain
4 E5 x; o& Y8 l2 vServerName www.otherdomain.tld
& l4 D0 H' {5 Z...
- }+ n/ X1 q1 _2 U</VirtualHost>& ]8 z1 X8 W/ l# m" k

% I. Z/ R8 `6 `% }7 D: sSetup 2: 基本同Setup1,但不设置专门的主服务器。
( C" I4 X: s5 F) m9 Z1 F- M7 e: y" V" L% y+ t6 X* b
服务器配置:' n! P5 V/ O) W4 Z4 E
1 u% ?4 T! s7 k; _( h3 y: p3 }1 u
...
* j0 u4 q& q. V  q3 t/ k3 E1 K" y/ G  n0 p. x% D% p- E7 L
Port 80+ {+ |0 i2 x8 K% C
/ G/ d' r# C* a2 s* J' S) D
ServerName server.domain.tld; U7 U# _& W% B. {' F5 O
<VirtualHost 111.22.33.44>
, z/ I( r' |9 D. KDocumentRoot /www/domain
, F6 Z7 X/ }, i, pServerName www.domain.tld/ E1 i  l6 l1 L" O: w5 q, e9 n& H
...- }" O, l4 m* n# r
</VirtualHost>
  o- L2 Z8 Q- z; I  s& O& B% E7 O3 J0 \& p
<VirtualHost 111.22.33.55>/ n& N1 M1 @: Z
DocumentRoot /www/otherdomain7 z. i9 N4 `5 }7 v  y4 j; H% ?8 \
ServerName www.otherdomain.tld% Q  |. n5 ~9 i; @+ t8 U
...
) f0 g9 A$ J9 b7 Q( w</VirtualHost>4 s8 w" N6 s' B1 `6 g3 ^
  H) a7 F. d6 ]  b8 Q! Y) e' j
这种设置只有当URL为http://server.domain.tld时才击中主服务器
9 |7 X$ r8 I: x% f
. [2 G6 s+ I2 }0 QSetup 3: 服务器有两个IP,$ C4 K  c! n/ Q) o; i- I

3 P/ ?! u, H2 ^111.22.33.44 server.domain.tld* D' i7 f  h9 F4 M$ C1 `9 E4 c7 _
111.22.33.55 www-cache.domain.tld( g; \+ ]: u& ^2 }- ]/ u
www.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。
5 ^" |' M4 J$ F. Kwww-cache.domain.tld是proxy-cache,端口是8080,Web服务器使用默认的80。
0 O) f* y' ^& B% W: V4 j( f, z5 f( a1 }) n- j, b
服务器配置:
8 c5 ^/ S) i7 d; L& }5 _0 z& m9 A/ ~2 I" }# g' r
...% D( D; N( B- L: l) r

5 h9 n/ Y8 L% o3 d6 R# _Port 80
) @1 W3 n- v0 H1 D' _7 o3 M5 `2 C+ ^
Listen 111.22.33.44:80$ y5 w% n% j0 c) q3 P. b" N0 l
Listen 111.22.33.55:8080
, g) f  z: q8 G9 V
3 [( w% Z& A; q5 G- u* L+ |2 s4 c  dServerName server.domain.tld$ y, U: e% x) ^
<VirtualHost 111.22.33.44:80>9 O" j1 M2 n, R3 a; \
DocumentRoot /www/domain9 R& z0 y8 ^9 A  ~% `# O; m) r
ServerName www.domain.tld
4 m$ N) M4 x. J( N9 l1 a' _  }...
4 D$ v; |; c1 ?- }1 o. S) @</VirtualHost>1 C* N* M8 R# O6 A% x" e

9 U9 T9 b- J# v8 |<VirtualHost 111.22.33.55:8080>
' V8 s+ \+ V6 N+ y- oServerName www-cache.domain.tld) e- s  c! _  W  R/ J
...! B" C- J% m. f! }9 ?' f- g* z
<Directory proxy:>" S! i6 ^9 u6 _& C- Q
order deny,allow
# C9 c, k0 z) J) R5 Z$ d4 |8 h& D% Sdeny from all
/ r# r3 x  |. sallow from 111.22.33& t. k. J/ X3 F. |; u+ d8 j
</Directory>3 ~% e/ a+ d4 w& n% e" A
</VirtualHost>. y5 G& I. ]' p) O

/ M; }9 N! Y1 c. o$ g4 y + R  s. @" I6 T* i

) J5 J/ ]1 W6 W. b0 F3 x; m名字型虚拟主机配置
# @6 Z5 d( S- e' b
, _' n+ K9 k' MSetup 1: 服务器有一个IP,; X* D" i6 n' ]& Q9 O/ Q

  p+ s, p3 v6 k5 D111.22.33.44 server.domain.tld. " |* K* s( `% k' g2 x$ p) C8 n
( a( G+ t( O( u- D. h
www.domain.tld和www.sub.domain.tld是别名(CNAMEs) 。 2 X# \  E: m3 G3 q+ N

5 \3 l  E% }: U* W# A服务器配置: 4 T  Z. m/ @* \
7 Z# I: V2 x% ?, s
...
7 p8 ]: i4 m/ q8 u+ O2 M/ g% J1 q8 o
Port 80- r$ L0 Q* V( W& v
" y3 D5 q# ~2 l
ServerName server.domain.tld
7 |& g+ b* u, [. W: J" n3 w. Y/ INameVirtualHost 111.22.33.44
- r$ y  K# h( D: Q& J4 ?* X+ f7 y7 q. e# T
<VirtualHost 111.22.33.44>0 H" \0 f6 d) s# Z/ C
DocumentRoot /www/domain
0 w+ S' k* V8 a) }. v! D# OServerName www.domain.tld
  f3 P9 `, H1 c' s6 _...' v4 H& ]* X0 Y: p3 _7 @+ x: ^
</VirtualHost>( I) m" f" v0 U0 Z1 f( l& j

1 f" @2 J4 Q- {0 q/ m7 n& o* j, O<VirtualHost 111.22.33.44>
; g# w! \- l' n* iDocumentRoot /www/subdomain" R  E8 Y! S5 N
ServerName www.sub.domain.tld
% `  H2 B* Y! Q- x/ i& \6 f* ?...; z# Q8 w: g: S' \' w2 q
</VirtualHost> 9 P; H; t0 ]2 B' \
7 c/ |- V" s& |" y, P8 x
若使用IP访问服务器,由于 www.domain.tld 有最高优先级,被认为是默认服务器或第一服务器。
, W3 ^& g  l0 ?( @; M3 f9 J
1 Q1 G9 y7 i6 fSetup 2:服务器有两个IP,3 Z1 P0 N* n  H2 J: {
6 R# V0 q/ [! I& d& A
111.22.33.44 server1.domain.tld 用于主服务器
& H* \. Y/ s5 }3 X& W111.22.33.55 server2.domain.tld 用于虚拟主机
: g; W1 b) k  a: G, M% S别名www.domain.tld用于主服务器,
/ q" B6 A( [# J  e; O别名www.otherdomain.tld用于一个虚拟主机,
* I+ \$ O' r1 U+ s  W; R别名www.sub.domain.tld,*.sub.domain.tld 用于另一虚拟主机,8 c, ^$ r& m' f# E0 ~% r

( Z1 D" R4 I. M& \" u( X, q0 K9 \+ G服务器配置: # i0 N: H. Q$ v5 q* V

/ H: X4 G+ B2 [! C3 ^...
7 U5 \( J: a+ p* E2 r5 ?% k  d* @' a
Port 80& \/ R" r. E5 M) B: h

5 Q# T& M6 x: L, g. I% a/ gServerName www.domain.tld
* \, j: C- Q. ~& c4 S9 C* X) YDocumentRoot /www/domain
$ S3 _2 c1 P# B) A7 Z, H9 ?. |NameVirtualHost 111.22.33.551 e- P" u, R4 d, q  Y
<VirtualHost 111.22.33.55>1 |7 J& C4 ^' g% D' k. Z
DocumentRoot /www/otherdomain
6 p$ _- ~; z9 @. h( ~' u5 U' hServerName www.otherdomain.tld
$ S( |7 J: L2 _4 V) G...
4 R0 _1 U& }9 M) a( ^# l$ Q1 N5 H</VirtualHost>  }0 M" ]. x0 b$ p: x

! A" d' H7 d# p<VirtualHost 111.22.33.55>
* A' \( t4 E9 v6 \, @* vDocumentRoot /www/subdomain! l2 `( K1 ?9 V3 v
ServerName www.sub.domain.tld
; ^1 f# ]1 e3 F( Z  J, |: n3 X: WServerAlias *.sub.domain.tld" `. M' T) S" |0 W+ A) c
...
" f! s4 u6 Q5 }, m# q7 t</VirtualHost> 1 u! w* ?6 ?$ h! ~& p! h

3 \- D0 s0 Z/ z* x混合型(IP/名字)虚拟主机配置6 T0 j7 R/ a* h& Z5 ?% d) E" C& F
/ x1 B4 s+ J! O6 g9 ^# L
Setup:服务器有三个IP,
5 E) Z% W( m" M. a# U
6 Q( G6 c7 N# z: ?111.22.33.44 server.domain.tld 用于名字型虚拟主机
: l5 @/ j/ P; p# F3 q- Y111.22.33.55 www.otherdomain1.tld 用于IP型虚拟主机
1 ^! O  m! n; D6 u4 z& R111.22.33.66 www.otherdomain2.tld 用于IP型虚拟主机: C% k9 F9 T8 {) u9 |
9 h0 D# Z4 {5 F* \$ n0 O% s
服务器配置:9 }/ a! g! g9 `
...+ J% W. E3 X& _- l/ K" @4 w( Z  F

3 v- p( ]5 N8 G, @Port 80
, }+ l! ^) i  w6 I7 j8 \9 pServerName server.domain.tld
& t; H( _& {  O
  o! X% `: L- p! v4 I: ZNameVirtualHost 111.22.33.44
/ W6 n3 h# I5 Q2 u$ }
) ~! s$ I0 f' Q/ p<VirtualHost 111.22.33.44>
. s1 O/ R" G# W' `DocumentRoot /www/domain
3 ?$ r& I/ k0 EServerName www.domain.tld5 n5 z4 V* o  p1 k* L5 L7 L
...
/ i4 I/ ]! Q; I</VirtualHost>
" ^# N) K( ]; @5 a6 O' {! \  J
4 d& p$ t: k! T* @* N7 z: ~1 H<VirtualHost 111.22.33.44>
8 U) y2 A# {5 fDocumentRoot /www/subdomain18 q) O4 ]6 \; }$ \
ServerName www.sub1.domain.tld
  w; B$ E6 `5 w! B6 o! @...6 ~! `1 ?0 w7 R2 I3 Z' k8 `; o7 J
</VirtualHost>
9 c( X* ~" v, a% P
% C/ n/ L1 Z6 |- l# }<VirtualHost 111.22.33.44>
" p8 m1 A" c6 E5 R3 LDocumentRoot /www/subdomain2* `6 H4 \. G) t3 y9 p
ServerName www.sub2.domain.tld
/ O* W7 k+ U* Y( F2 i...9 j' }: {/ F7 m$ g6 F5 ]. ^; I
</VirtualHost>
! u# X2 d( m+ L- E' R- h% _. f3 E6 C+ ~) G& J- J9 @9 F
<VirtualHost 111.22.33.55>+ D2 K& S& Y; A
DocumentRoot /www/otherdomain1: C: k" e1 V: a2 F+ ?5 a3 @: F7 `
ServerName www.otherdomain1.tld+ H# `, x  ?. Y3 j
...
- {3 |9 N. V1 {& E9 `</VirtualHost>
3 ?4 a9 U5 }! I0 d; F
+ Y. m- ]$ ^/ ^2 s6 i( A% M<VirtualHost 111.22.33.66>
  W5 @7 g. q, O6 l- G( pDocumentRoot /www/otherdomain23 m" q) h& N. V3 `+ z7 ^
ServerName www.otherdomain2.tld
/ [* {" d! ^7 K* F0 M6 S0 B...3 V, R$ _/ |0 \0 P) [
</VirtualHost>
+ W3 M0 Q7 ]- d% N
* v; O% V8 |; l" J! T5 ^1 l4 c0 S. d. t端口型虚拟主机配置! J7 f4 k7 O2 k% M$ ]  k' [  W+ E

. C% M/ R( R% w* ySetup: 服务器有一个IP,
. U7 |& j( y  L6 i  H0 n" r9 r( z4 D
111.22.33.44 www.domain.tld
* w* X/ f: Q) M; [3 D2 z
/ |0 s, [6 ?& E不需要另外的别名或IP,采用端口型虚拟主机即可设置一个配置有别于主服务器的虚拟主机。 7 a1 M" m; Z/ @2 A. I8 d

) r* i2 d; d" j7 M服务器配置: 5 H$ _7 e4 `# O8 k3 l( E4 B
...
# V' I( a, q. z4 Q! e/ R6 K+ G1 Z! z" Q+ E
Listen 80
1 L; ]8 L2 N, r9 V9 f$ ^Listen 8080) L( b8 _9 U- f3 O5 H+ m" z8 F
4 |. t% D4 M$ q6 H/ `2 H
ServerName www.domain.tld
' X( o% W; m* H1 ?) y* ?. ?DocumentRoot /www/domain
" O, @8 p8 y, D' }5 D, X& Y5 x: {- q# E1 @; F
<VirtualHost 111.22.33.44:8080># D) U6 L. W. v) h* C( N
DocumentRoot /www/domain2& V# u. n) V2 O# m: N3 |
.... A0 r: ^( W6 R& p' h. ?
</VirtualHost>% v+ S2 ]0 H8 I  p6 o% X! D
1 G8 f) F4 A3 P1 K9 W& p9 n8 Z5 K
 
& h: O% x. U* U
" M9 y- T5 x7 P0 ^. P2 F来源:http://fengyu.china.com/Vhost.htm
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-10-1 23:11 , Processed in 0.015446 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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