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

使用Apache Server设置虚拟WEB

[复制链接]
发表于 2003-10-12 13:37:43 | 显示全部楼层 |阅读模式
unix 平台与NT平台使用apache server的设置相同。以下重点以unix平台为例, G/ B+ b# T, A7 c+ Y1 X. Z
说明apache server的设置。另外值得注意的是,虚拟web的成功设置,有大约
6 e# q: S7 W/ W* u50%的工作量是在域名的注册与解析方面。所以一般先注册好域名然后再做
- ^; j5 P; i0 m# U; B% r虚拟WEB设置。: X. E: Z3 \  I9 V! n% X1 o
, W7 \( K1 A& ?3 D, ~: ~
一 、IP型虚拟主机5 f  ~: ?% A2 U1 Y( ~  n2 B' W, I

! v$ S/ }" }9 J  V" EIP型虚拟主机指每一虚拟主机对应唯一的IP。可通过多个物理网卡或虚拟网口实现多IP,Solaris2.5和Windows NT都支持这种方式。
& d% W, g5 T( T9 k& L( H* v1 v. Z
两种配置多虚拟主机的方法:5 w1 A, s3 a+ c" a

% \3 R: `5 l. R  a( I$ ?1、为每一虚拟主机启动一个httpd进程。
0 r4 j4 f( k  D8 {2 W( p4 D! g; V8 U, i) k
下列情况下使用此方法:
; Z' z, E* z, |% P( \6 ?; G' n" z$ ~% e5 Q! a" e6 S
? 需考虑安全隔离问题,如两个httpd运行于不同的User、Group、Listen、ServerRoot,两者用户除通过Web相互浏览数据,无法访问其他数据。
. h7 D1 [8 W; J! V! Z* E1 j& b. u8 O3 M& M; l6 C1 f
? 能提供足够内存和文件描述器。
( z' ^& g" _' }: Q
+ G* o! P2 R: A  N1 q1 t8 h- M设置方法:3 p! U2 o0 n- Z
" K5 o5 x: r; r
为每一虚拟主机建立一个独立的httpd安装,在每一个安装路径的配置文件httpd.conf里,用Listen指令指定进程服务的IP,如:, N# L: X8 Y% g

8 [, x) j) P- b* D  PListen 10.68.37.10:800 U. K' P% S8 r; |$ ^

& X# T6 |: O: X2、为所有虚拟主机启动一个httpd进程。, a+ }6 s5 U) k: Z7 U% \6 V! c

0 x) v. `! n5 \" @9 C  Z; Y下列情况下使用此方法:
) v  \1 c, |  s  f3 V/ d( s# i2 v5 t6 H% }8 p
? 允许在虚拟主机间共享httpd配置。
$ y- i7 l9 C0 O1 H
- @+ g* a% T% B' g( T5 r4 A. @? 计算机服务于大量的请求,运行多个进程使服务器性能降低成为重要考虑因素。6 x" w( Z% a+ |0 g
( a  P3 U- K, e+ w9 k
设置方法:
& Z, o6 C" t2 v4 d* p
" m  ?5 A  y) Q' T在配置文件httpd.conf里,用VirtualHost指令为每一虚拟主机设置ServerAdmin、ServerName、DocumentRoot、 ErrorLog、TransferLog或CustomLog,如:
9 n: \8 l4 a7 G& ?2 ?( o& ^$ A% g9 ~5 M6 U" N; k  L
<VirtualHost www.smallco.com> #此处建议用IP) R# Y$ X3 u; B; Z/ o/ W5 Q
ServerAdmin webmaster@mail.smallco.com
9 a: }" y/ N: ]$ R6 W& ~7 k7 n/ zDocumentRoot /usr/local/etc/httpd/htdocs/smallco
4 q, C" a& J7 k* U; t# DServerName www.smallco.com #建议此处用域名
- M9 w( }/ g" GErrorLog /usr/local/etc/httpd/logs/smallco/error_log1 _# e( ~2 c9 n. y+ i- X) z
TransferLog /usr/local/etc/httpd/logs/smallco/access_log
3 X7 g+ k/ I4 y3 D8 N</VirtualHost>) B3 B$ k" S) l$ `- h" c
3 z2 P& s+ L5 D0 j& y5 F
<VirtualHost www.baygroup.org> #此处建议用IP0 ~1 _3 \; p7 N% x
ServerAdmin webmaster@mail.baygroup.org
- m5 D, a5 x, A8 ^) Z! M  t5 bDocumentRoot /groups/baygroup/www! v! H8 u2 r7 p
ServerName www.baygroup.org #建议此处用域名3 K7 X, h5 o, a
ErrorLog /groups/baygroup/logs/error_log7 n  D0 ]7 _0 K1 K1 Q
TransferLog /groups/baygroup/logs/access_log/ m% a/ _' n+ C$ M
</VirtualHost>
5 u' b( L5 c1 Y& {0 E
0 r: k# P! E; q( w% Q, D同时要做虚拟网口或网卡的配置,在DNS也要做相应设置。
) Z8 q/ [9 T' n7 h: U1 N0 Y4 I7 q4 ^1 l' ?' K+ m6 k; L( b
二 、名字型虚拟主机(Apache1.3以上版本支持)
  W4 q$ D( g3 i: g& ]0 O
9 M% N( S7 L0 b" V  IP型虚拟主机虽好,但不是最佳方案。它要求每一虚拟主机有一专用IP,在某些机器上难于实现。5 I' U* Q7 u2 g" I' P' H5 x! d
7 d/ A8 y( `4 f1 }  a' U/ o
名字型虚拟主机是指每一虚拟主机的名字不相同,但IP一样。它的好处是不限制虚拟主机数量,配置、使用简单,不需另外的软硬件。缺点是客户端必须支持该部分协议,最近版本的浏览器都支持,某些老版本浏览器不支持。但Apache为此提供了解决方法。1 |% h8 Y; e! G! [  }
# `$ o; e3 F9 Q% p
设置方法:- c  h" L- j8 I- F

  A8 m; T, R" k4 B. Q1 O) a  W在配置文件httpd.conf里,用NameVirtualHost指令设置虚拟主机,如:
$ B+ X2 C% L& q" X: A: O0 p  j) |: G. L6 I
NameVirtualHost 111.22.33.44) g$ S, p: k% D6 p

$ M5 j4 [/ E1 b<VirtualHost 111.22.33.44> #建议此处用IP
- F! v8 c7 Y, gServerName www.domain.tld #建议此处用域名
3 G( H( c9 _* u% @8 m) NDocumentRoot /web/domain
* N2 ^* D4 Z% o$ s" @& z$ a</VirtualHost>0 s) z. V  N- ^# h% Q6 ]) w6 n: @
7 t% s) E  ]+ W7 o' N/ e
同时,在DNS定义www.domain.tld指向111.22.33.44。7 T: S1 r4 ?+ D4 I( M7 R9 X* T
1 w+ m8 f! S) @$ |& _7 E& w
注意:当在NameVirtualHost指令后使用IP时,任何使用IP的URL请求都是针对虚拟主机的,主服务器从不会响应一个使用IP的URL请求。/ r( ?$ b. m" Z+ c
6 A8 p; r3 M9 o3 K2 N% g
另外,有些服务器希望以多个名字被访问。例如,假设有某一IP的服务器,希望以名domain.tld、www2.domain.tld都能被访问,做法是在VirtualHost指令部分使用ServerAlias指令。如:
+ R2 n8 _# r) Y
$ T* R& e1 p* yServerAlias domain.tld *.domain.tld
$ \" A4 y  u7 S' `$ k  U  |. Q
另附一些虚拟主机的设置实例。 . q$ v) n7 I/ s/ N$ f% S$ N
! E# h, J6 K" j3 T
 8 B( j0 s. A  f. L6 D4 I( t

( x& w' S3 v2 p; K7 _ 
5 y4 F$ h/ `5 ]+ h0 b8 `. y
9 q; S- Z2 b, q5 e附:虚拟主机设置实例
: e4 U0 l, P. ^( Q* M; A+ L3 m  g0 O# ^" G* H# i) L( e
IP型的虚拟主机配置9 R0 N, g! p9 V+ A! u
/ [5 h  m! k( M+ b) j# E4 {
Setup 1: 服务器有两个IP,: F0 s5 i! ]- G

  e* K$ L  R  J$ G111.22.33.44 server.domain.tld
0 E0 x2 S; m; |' v9 o8 [. G% j
. b) X$ \: g$ t, K2 k: X6 [+ T111.22.33.55 www.otherdomain.tld  q  p9 q6 r6 L# w/ `4 V+ }

; s# x% B- E. ^! N; Z9 u  w: \% Jwww.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。
; v0 m. \1 O& q' L# ^$ b7 i7 z* _: K" `& T5 }$ q7 S
服务器配置:
5 i" k0 V% Q& j6 \, q" P
, l# h- d. E% M3 A...# u# b+ X# G1 C2 T

+ u9 A$ {# x* W( x' dPort 80
) y4 U( L; v: ^! c, S6 n, F! l. L  a
DocumentRoot /www/domain
( f8 \2 C; g# z! A- a7 `ServerName www.domain.tld* v# w8 ?  j1 L0 B& {
<VirtualHost 111.22.33.55>0 ?& L6 c: I/ P" F0 K5 n
DocumentRoot /www/otherdomain1 x( z2 _; _' P/ q
ServerName www.otherdomain.tld
2 K* \9 |2 \1 [' i" _9 e& x...
) V  p$ W+ q; w' d9 O. O! n6 m, K</VirtualHost>
( {9 |* \7 G) y2 ?7 ~6 l! p  w. h3 t9 l/ q  g$ L. L
Setup 2: 基本同Setup1,但不设置专门的主服务器。
2 a/ n6 g# {- {: B6 j$ g7 r9 [" ?% C* x
服务器配置:
& T) l4 r7 |- v; H* ?% U8 e5 a5 I2 d9 C7 j  w% N) x
...
- l( v3 ^6 G9 {5 }2 a
8 R8 V, X  v1 @4 WPort 800 I% T& x3 ]' Y

7 O* O  @, E% p$ `. z* jServerName server.domain.tld
9 \. |: a3 p5 n& c4 W<VirtualHost 111.22.33.44>
: X& ~# u! ^0 _/ I$ y" u  J+ GDocumentRoot /www/domain
+ @" E( r% W9 z" R, O  J! JServerName www.domain.tld
* Z" {' i+ X! \...& p5 v7 w! ^# ?, z
</VirtualHost>
. H3 z* d, }- C" Q- K& j; x8 p" K* c9 A) Q( W' P
<VirtualHost 111.22.33.55>: m3 T$ X6 Y. t( g" C
DocumentRoot /www/otherdomain
1 N# d8 L( i) z/ Z$ h" KServerName www.otherdomain.tld, z: Q9 Y, i. v/ M5 |# }$ c
...8 G2 r* B" g+ K* W9 D
</VirtualHost>6 q9 ^: A& b0 G! s. ?

$ \" V7 M: l4 h. t: w" x+ Z4 B- |# N这种设置只有当URL为http://server.domain.tld时才击中主服务器 ' |5 X" h6 ~9 F* e2 {

- d& w' X0 L: {9 ]4 t: L! oSetup 3: 服务器有两个IP,
( Y$ P0 b) R) w; k; ]& R0 |& S8 N# k3 y0 J, n
111.22.33.44 server.domain.tld
/ B! f! N+ I" l* Y3 S& \8 X111.22.33.55 www-cache.domain.tld
7 F4 N7 U' x* I3 a6 Q0 Rwww.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。% I. a3 _7 z6 S+ D# E8 m' {
www-cache.domain.tld是proxy-cache,端口是8080,Web服务器使用默认的80。
3 A6 {* `) O7 }" g  q- S+ i) w  O
0 F0 t2 {3 D3 U3 ^; M+ l$ B服务器配置: ( T0 s/ ^& y8 v
2 {9 ]  ], d$ I8 S
...
7 h# L, X# A2 e+ l( L
6 V& ^! v/ N! g+ M1 {6 ]5 zPort 80. ^2 }8 o& ~  d, B# b  `, @
3 s5 g4 V, k5 ?4 g/ {/ x% ^
Listen 111.22.33.44:80& D2 T, [8 Y  Y: E3 b) c
Listen 111.22.33.55:8080, ]1 J3 D' z7 |3 x% _" S
2 H4 ?" u3 x5 ~$ S4 |
ServerName server.domain.tld
1 s4 ^: M: x6 C9 |<VirtualHost 111.22.33.44:80>. j9 o0 l1 v) l
DocumentRoot /www/domain
1 j$ w9 L& @) [ServerName www.domain.tld
& ?# L$ j) b1 g0 g...
, A: ^# M( R, t, {  N. }: ~</VirtualHost>
, q, k% S& U; {& R5 E, F
# _7 C% `. o, o+ \<VirtualHost 111.22.33.55:8080>% B7 k3 n1 `7 h6 I( V+ n" |
ServerName www-cache.domain.tld8 l6 x$ o1 Z. O
...0 o% ]) r  ]4 b* V
<Directory proxy:>* @- Y9 d& J9 P3 v
order deny,allow
! M# P* i' [4 p5 }% `3 d. [deny from all
, c$ ^1 Z3 ?3 L; c' {allow from 111.22.33
! O; t2 L. t: G  ]( b' K6 {</Directory>
! b: w) k- I: g1 R0 u/ O</VirtualHost>  ~8 ]" B8 k1 r* ~& k

1 U( R3 m+ w; y# N$ N% t 2 O' C/ o/ u, x

1 L4 I$ ^! P. a名字型虚拟主机配置. E/ |% k4 D9 R" `/ r

1 x2 L; ~- Z5 N3 V% \Setup 1: 服务器有一个IP,3 v9 ~0 G5 o2 U1 C& _
0 d' i) {6 v6 J' v& I5 J* ~
111.22.33.44 server.domain.tld. & M$ D. L+ ]1 k- T5 t9 ^* y

, R" L* f. D& r, v& \+ ]www.domain.tld和www.sub.domain.tld是别名(CNAMEs) 。
( U+ h. e2 g* ]* G! e
/ A# x0 X% l% d. C4 Q服务器配置: ; |8 n" X9 O4 f
# P4 |6 `- |- Q* L0 j% I; ?
...
, {, |4 ]& N. @( p1 n8 |, o
9 ]0 ]. J+ a: ^" O. QPort 80
4 l  O: C  }! d' t: r( V+ N
3 R, v: D% O% `  I- {3 H3 zServerName server.domain.tld9 q' Q* l9 B; J/ m( w
NameVirtualHost 111.22.33.44
" I, F* j6 o: v$ a$ U$ O
$ P: ?( P  i% p* V! z<VirtualHost 111.22.33.44># @; `) j- }3 A; o9 F: V& ~
DocumentRoot /www/domain; `2 B* t) o& i. }
ServerName www.domain.tld
5 T& J* Q7 M3 M* j) `* M...
, D7 e/ P) J, O  O5 f$ G' K</VirtualHost>5 |" X3 I! q; l0 i
7 @  ]) E( X; Q& O2 c$ R2 Z) n
<VirtualHost 111.22.33.44>; I- _" `6 O8 c. m5 _/ e# K
DocumentRoot /www/subdomain
: K! i5 A+ ~/ f# L$ c3 d1 X1 ?& x$ `3 VServerName www.sub.domain.tld8 O6 E, S8 m2 _+ H
...
$ }" z' B/ t. M0 ]</VirtualHost> * U: Y2 H( a2 K/ S2 G/ c
* P: U( T. g9 r
若使用IP访问服务器,由于 www.domain.tld 有最高优先级,被认为是默认服务器或第一服务器。
  |  p3 x+ n, C1 o; ?! Q3 z9 g: w* E* n( ^6 H8 C6 }: g& Z) ?
Setup 2:服务器有两个IP,& n# j: V: N1 w3 p. W& d7 M
  J( C2 W9 _. [! X  L5 [. B7 D" d. _
111.22.33.44 server1.domain.tld 用于主服务器
- k: j2 `% O1 L111.22.33.55 server2.domain.tld 用于虚拟主机3 B+ ]1 w; m5 f7 F! j5 l1 X# U+ c, K7 l
别名www.domain.tld用于主服务器,6 ^5 e8 y) L) u( n1 ]
别名www.otherdomain.tld用于一个虚拟主机,- ?. o/ T# H+ q* y$ t4 C% y
别名www.sub.domain.tld,*.sub.domain.tld 用于另一虚拟主机,
% i. w. }$ i3 Z( j8 v
7 G% S: [$ x  u) l0 O服务器配置:
& u+ |( E6 b/ N
. P, c( }( f! t; v+ r( l...4 [  c* o( X8 M0 ^6 m. W8 @

" ?3 z  u' v. U8 I, ~/ \- Y+ QPort 80
5 J: x+ `( b$ n! P' }5 v& }2 U5 F2 H6 a1 Y
ServerName www.domain.tld9 R1 X# f' g8 F: o2 z# `
DocumentRoot /www/domain$ j# m9 F- p) Q8 {: V8 }2 X; W
NameVirtualHost 111.22.33.55
9 H+ T/ y! p0 ^' U5 P3 w! O; |<VirtualHost 111.22.33.55>
" a- \1 I) w$ b( ZDocumentRoot /www/otherdomain6 N9 y% _3 ?- i7 b7 D6 A
ServerName www.otherdomain.tld6 v. F# A- Q, n/ s& \# j
...+ V1 z& d& P* R5 k2 d
</VirtualHost>2 V5 w, ?% k6 W0 O! M* O+ J

( K1 W; m; g. `- ~7 Z0 Z" Y: i<VirtualHost 111.22.33.55>
$ n0 q, e$ }; C# e* n! r) pDocumentRoot /www/subdomain) W) Z, f9 }5 d' Y; h3 O% `  ~7 u5 B3 ]
ServerName www.sub.domain.tld
- ?4 q" N" O) ~$ f; ]ServerAlias *.sub.domain.tld5 `+ G; Q+ A. u1 [1 b2 y8 \) m
...
+ k& ~4 k6 s( Z% H1 U</VirtualHost> ; c( z. |5 F2 o8 q; T% r, I

+ |2 _3 P4 x4 X, H4 V# }! f& o5 y混合型(IP/名字)虚拟主机配置
  x! i) q4 W) M8 I
( x  V& [7 `% j/ Z5 Z+ ESetup:服务器有三个IP,: \6 f4 E' X9 Z+ C; w

+ \: X; V, ^5 D( T5 e$ p# S9 u111.22.33.44 server.domain.tld 用于名字型虚拟主机/ ^4 b2 A. M. U% ^5 _1 c/ J) g' @
111.22.33.55 www.otherdomain1.tld 用于IP型虚拟主机  N0 t3 @9 k  S' |
111.22.33.66 www.otherdomain2.tld 用于IP型虚拟主机
& N% {2 G+ Q% |5 x" ~% E( c% D' v2 b6 t0 j" f+ E3 N* M
服务器配置:/ N- i/ p- D% i5 J, f- j5 _( E8 p+ L
...
* r8 J" f* r' i3 H1 {7 e3 e; A3 n. s6 c; {6 d6 U
Port 80/ U% F7 G, U, |  H  u
ServerName server.domain.tld# @; t& s$ c) h* U6 r3 X

. n4 l1 U( f  |! G. ?4 g7 W; BNameVirtualHost 111.22.33.44
" M8 D% M9 B- K: d
# N# x- \+ ?6 T<VirtualHost 111.22.33.44>
8 y6 G6 q% l$ UDocumentRoot /www/domain  ~  J5 e" x9 K# d
ServerName www.domain.tld
' b2 ?' ~" e7 B3 [3 A6 c& o' }...5 f& @8 Y: J0 e" x. }: E3 ?
</VirtualHost>
. `9 Q) A! L: y# z6 q% }% L9 H; ~. G* e6 O- G, ]0 g
<VirtualHost 111.22.33.44>
! ]$ b$ a5 T: I: l8 g3 m; GDocumentRoot /www/subdomain1
% [8 W8 o; w0 D. x6 _8 vServerName www.sub1.domain.tld
/ H( C. c( S4 P7 c0 O...
; W& G; F( W/ }</VirtualHost>
& U" V' M( D8 R8 R8 f% K. g- f4 h, [  ^) ^2 B7 L- w
<VirtualHost 111.22.33.44>
  J7 N" r9 ?8 N8 BDocumentRoot /www/subdomain2
" s6 W6 T4 |/ V/ a, m$ k' eServerName www.sub2.domain.tld/ E' i; M* \/ ]% W( G. y
...
) s# T7 N5 }$ ~</VirtualHost>
- O2 M: E" N* d  i" \5 x7 s7 U) q" I' r9 r( B
<VirtualHost 111.22.33.55>
: ^; P3 x2 p. t; fDocumentRoot /www/otherdomain1
# I2 k# Q' V. v& H* zServerName www.otherdomain1.tld! ~3 B0 e. h. H+ F6 T7 c& }
...
/ U. y5 w" Z8 a, X! K5 P$ v# l</VirtualHost> - ], _0 Y4 s! i. }/ e

0 F- H" }( F* G8 E9 y1 a. C<VirtualHost 111.22.33.66>
$ ]# a; U1 z) a6 p: o1 n0 NDocumentRoot /www/otherdomain26 C  K) y& Y  C$ Y) ]1 ?
ServerName www.otherdomain2.tld
+ y$ i- I+ [! p2 M" s* O...* w, _9 U% i/ _) s
</VirtualHost> , I2 K& r$ W/ o/ V

, ]% ?/ l% I  w端口型虚拟主机配置
  p) f: w- H& p- K
. S# U5 P  r0 |) Y) ~) d: V& r5 _Setup: 服务器有一个IP,6 N4 g$ g. K: `$ i( f

6 {# f* p0 _; G111.22.33.44 www.domain.tld
  H/ i! U, P* C3 \8 b* O) ?* T0 J
% p9 V$ w& j; E1 }; D不需要另外的别名或IP,采用端口型虚拟主机即可设置一个配置有别于主服务器的虚拟主机。
9 `: u' n, K7 K  U9 t
# `+ Q: V! I8 Z; \/ z- m- |& i2 s服务器配置: 6 b- Y6 K8 L; S7 C% d" B! p
...
7 K* C: S# Z4 R5 q
) A8 B* M9 Z  ~6 h- f! W7 HListen 80  S6 M7 L0 ]1 A+ S2 C% m1 ]
Listen 8080# h6 P" K% n$ w- K

$ u# Z: q* {9 u9 H1 ?+ dServerName www.domain.tld( a! |+ v# j  g5 [$ `
DocumentRoot /www/domain
" j5 b; K; P% Y6 v# Y3 l7 |; @2 c
& v% b, m& i! P( K<VirtualHost 111.22.33.44:8080>+ k2 d) b4 g. X" k
DocumentRoot /www/domain2
9 F. I/ R, i8 W* y: z...( z0 M% p8 k+ X) W; u1 k9 U
</VirtualHost>7 O! L% {3 B1 ?, j/ o) C3 \
# x6 J& R' i7 E0 D0 g2 [! U
 
6 f7 c) k* q7 c2 i; b$ b7 b2 U% e0 b0 K8 P; C, ^8 w& v8 R6 ~2 b
来源:http://fengyu.china.com/Vhost.htm
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-2 10:35 , Processed in 0.019681 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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