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

使用Apache Server设置虚拟WEB

[复制链接]
发表于 2003-10-12 13:37:43 | 显示全部楼层 |阅读模式
unix 平台与NT平台使用apache server的设置相同。以下重点以unix平台为例* {* Q: ~7 a0 g7 X# e6 m
说明apache server的设置。另外值得注意的是,虚拟web的成功设置,有大约  k1 q, o# K9 _7 A. O% b0 t1 x# `
50%的工作量是在域名的注册与解析方面。所以一般先注册好域名然后再做5 G1 `) ^: S% p2 _5 ]; F
虚拟WEB设置。
+ F9 m$ _- L6 y; Y  ~# @, P. m% G/ z3 h1 y  u2 u
一 、IP型虚拟主机2 A3 \# x. L1 n3 k  ^- I1 G

9 c9 ]; \& C4 m5 k9 t3 SIP型虚拟主机指每一虚拟主机对应唯一的IP。可通过多个物理网卡或虚拟网口实现多IP,Solaris2.5和Windows NT都支持这种方式。
# @8 J( z) H1 q! ~# J# s0 T% ^* S1 a
% s$ e) Y# J% U- z3 X6 e两种配置多虚拟主机的方法:+ N3 w% u+ o; f2 p# n" @; B; x
( q+ E+ E5 I  X2 M8 B6 V& W7 @- o. T1 ?
1、为每一虚拟主机启动一个httpd进程。; i  l4 X5 K% {3 k& i/ k; K

5 V/ i/ H& i3 p* v下列情况下使用此方法:
- s! c. @2 h% F9 U& \
- c/ O; k' f9 D) \! u9 M? 需考虑安全隔离问题,如两个httpd运行于不同的User、Group、Listen、ServerRoot,两者用户除通过Web相互浏览数据,无法访问其他数据。+ \( J: o8 n  Z2 U6 S

: g& d$ r, P+ v, i" y? 能提供足够内存和文件描述器。. J% @3 d! ~. R+ G

3 _) p" \% r; ^5 Y设置方法:
% y$ f$ Z+ X$ @. w# u
$ O6 o% ~0 u' ]为每一虚拟主机建立一个独立的httpd安装,在每一个安装路径的配置文件httpd.conf里,用Listen指令指定进程服务的IP,如:
5 b3 L6 ~1 _# [; o0 r! }9 M- ]6 f0 W6 z9 c' G
Listen 10.68.37.10:80
- @+ ]7 \1 s- {6 }: a9 h3 J2 ?( R1 {
2、为所有虚拟主机启动一个httpd进程。
8 }+ T9 A( Q/ V" }
" d) Z/ I" V$ l  ?" F4 ^1 @下列情况下使用此方法:* A3 f0 ?8 P8 _. {: f; E. n* O

& Z1 x: W/ s- U6 \- f. h? 允许在虚拟主机间共享httpd配置。
3 N1 S- I: @- o* E' T! b; g/ K3 Z' b& }; {- _" u# I
? 计算机服务于大量的请求,运行多个进程使服务器性能降低成为重要考虑因素。
. w7 m  K( U1 Z8 Y1 O
% x3 r+ d* s9 b% D! P设置方法:
' P3 n' z2 |8 ^) t" J4 B* x- I# i" x  T* ~* o* g
在配置文件httpd.conf里,用VirtualHost指令为每一虚拟主机设置ServerAdmin、ServerName、DocumentRoot、 ErrorLog、TransferLog或CustomLog,如:' P* q5 b- W) \2 V; w* Q

4 i0 G6 P. i1 }( G& ~" C% }4 x<VirtualHost www.smallco.com> #此处建议用IP, R9 A3 n1 X; a6 I! N* Y
ServerAdmin webmaster@mail.smallco.com( C8 l+ k! \/ }1 j+ E$ F6 S  w
DocumentRoot /usr/local/etc/httpd/htdocs/smallco
! f& ?" M" q' iServerName www.smallco.com #建议此处用域名
& r: U: B2 e% j( R4 m. ~. D% O) WErrorLog /usr/local/etc/httpd/logs/smallco/error_log
: r0 ]; j6 S- [# \1 S! p4 e- OTransferLog /usr/local/etc/httpd/logs/smallco/access_log# F8 z2 h+ Y$ D0 S+ {, [
</VirtualHost>6 ]: V: R9 q* [! q4 X
: i6 e% ]9 j& |2 q* m) L* C
<VirtualHost www.baygroup.org> #此处建议用IP
  x# x- i1 f, ]ServerAdmin webmaster@mail.baygroup.org6 S& t0 _9 Y: h& _
DocumentRoot /groups/baygroup/www
' F6 j0 J: c2 g8 Z5 O/ `; |2 gServerName www.baygroup.org #建议此处用域名
1 ^" E9 z% M( W+ a; B5 I9 g, A$ BErrorLog /groups/baygroup/logs/error_log
' p/ P5 Y/ W. f) `TransferLog /groups/baygroup/logs/access_log& _6 B% b5 m, z! \# n* O
</VirtualHost>
+ e! K2 |( D4 ?/ t
2 [) d# d4 r4 L0 A同时要做虚拟网口或网卡的配置,在DNS也要做相应设置。
5 v+ A) Q' N/ U  w2 a6 G# E  j+ `: u+ a
二 、名字型虚拟主机(Apache1.3以上版本支持)( k4 X( t# Y9 l' {- l
9 U1 X) i$ T/ F
  IP型虚拟主机虽好,但不是最佳方案。它要求每一虚拟主机有一专用IP,在某些机器上难于实现。% h! U0 F' W+ U0 t+ B" z, G
1 `) D( k( z# s% p
名字型虚拟主机是指每一虚拟主机的名字不相同,但IP一样。它的好处是不限制虚拟主机数量,配置、使用简单,不需另外的软硬件。缺点是客户端必须支持该部分协议,最近版本的浏览器都支持,某些老版本浏览器不支持。但Apache为此提供了解决方法。
! p' q. b/ c5 [! \5 V7 U( z5 v( j) z4 s$ \) o
设置方法:
2 s/ n. `9 g7 s' |; {) F# |5 `8 D9 b
在配置文件httpd.conf里,用NameVirtualHost指令设置虚拟主机,如:
. ~4 A% _' J) [1 s, [8 d1 L3 _
- P# B! u# |+ J) L. E$ hNameVirtualHost 111.22.33.44
0 o* {- W8 R9 J! e$ H, \& k+ h
<VirtualHost 111.22.33.44> #建议此处用IP0 ^& ]* V& k5 t
ServerName www.domain.tld #建议此处用域名
& v  L8 H5 M" u, l) hDocumentRoot /web/domain4 d* ~* w  Q5 A- [
</VirtualHost>
$ }2 [- t6 E6 P8 ~( v  g$ F. ?% n, ^8 Y5 v6 I( S+ R
同时,在DNS定义www.domain.tld指向111.22.33.44。+ I# v/ J- G, @; P" \, a+ Q' j
: M! Q, K, ^. j) \2 G6 g  {0 p8 _
注意:当在NameVirtualHost指令后使用IP时,任何使用IP的URL请求都是针对虚拟主机的,主服务器从不会响应一个使用IP的URL请求。) y5 _) O# p0 b5 W

) I5 _, E# ]" z4 X; @另外,有些服务器希望以多个名字被访问。例如,假设有某一IP的服务器,希望以名domain.tld、www2.domain.tld都能被访问,做法是在VirtualHost指令部分使用ServerAlias指令。如:1 W/ A+ f- J. o* p! A% p
! S/ Q3 m6 ^9 M, S
ServerAlias domain.tld *.domain.tld
( @7 _% `  z/ Q, w2 i5 e
' H/ b7 G" e: y# u另附一些虚拟主机的设置实例。
8 O5 R' e" q% }& h) Q, g' X% n$ E" D. P& h, B- e( k
 
0 e: j8 V: A' \( r
+ E  y' F9 A+ d- E: G  a" W2 @ 2 f# J' m5 k6 e. {2 N5 l- _

8 K/ I+ e6 C0 U5 b' T: F9 v附:虚拟主机设置实例: Y3 _, t' K+ f! x: ^3 U& f

' n( `0 u: y: U4 `IP型的虚拟主机配置/ N1 N2 V! ~( C' s, j9 S' E" l
* f5 Y9 b3 U6 u% F1 ^. [6 [3 c3 q( p% ]
Setup 1: 服务器有两个IP," f; c0 P9 w7 y5 v4 E

. J8 R. Y5 L3 R% a+ b' ?* ~111.22.33.44 server.domain.tld. |  `1 t$ U6 ?% k; l: h( E
. @$ Z0 D% T* j
111.22.33.55 www.otherdomain.tld, N9 a7 C$ {! `5 B; Y% e
# F. l+ d* ~; i0 _2 g4 ^
www.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。
0 {- g: D2 Y# U- A0 _# t
8 f6 D8 L- z0 k( c% {% [服务器配置:
% `& r: R5 l9 h0 ~$ G: i' H
$ w/ R9 o! x. ]( ]: o* ^...* V7 x5 M, Z& u! @

. i0 `$ I% K. B( J' BPort 80
( l- D$ q$ V1 x1 ?1 ]" Y, z2 J7 S! L& k; N  T: N, L
DocumentRoot /www/domain
$ k3 r8 s1 s0 T% TServerName www.domain.tld' k, D2 o" i2 H8 T+ ?
<VirtualHost 111.22.33.55>
" W7 p. m2 k3 i4 v% y9 R. Q! nDocumentRoot /www/otherdomain$ C+ f. {( J; w0 S
ServerName www.otherdomain.tld1 o2 G: f( f" ~) j
...  Z2 @* {" I! J7 n% p
</VirtualHost>4 M8 h6 O7 l/ Q: g
& O' L/ p( H- Z) }8 A  h
Setup 2: 基本同Setup1,但不设置专门的主服务器。- K7 |7 C! |* {4 T$ v

  f- o8 l; ~, u1 ^0 |) {: V* Y服务器配置:# A% u( |& X4 h% k( V. A: x

! R' k. r0 s2 B" n. P...
& d5 |* Z  e" b7 c
, `; t, D8 V# V6 a, q9 lPort 80
  M0 s& p9 I/ k# e2 g! k/ W. {( i) n+ e/ ?5 \
ServerName server.domain.tld
" M- V; Y+ R9 Q* q9 ^5 I- |- v<VirtualHost 111.22.33.44>3 p8 p  x. M/ L& |3 R/ t  N& Z1 V
DocumentRoot /www/domain5 _" t" E3 j% H* z, O4 U$ b
ServerName www.domain.tld+ }. @# r* o- j7 ?
...
5 v2 A& y( T& S</VirtualHost># i+ R% P$ G7 K8 I8 v) z

" W7 a3 x9 Q1 ~+ v( S6 X<VirtualHost 111.22.33.55>
% r' B/ _6 ^; jDocumentRoot /www/otherdomain3 ?" w: G$ ?" z: u8 m
ServerName www.otherdomain.tld& p' m) ~" I7 u1 a
...
5 L) i: ?. M: e</VirtualHost>
0 a  n* ?  E2 V) |7 c6 U4 I9 e5 f) N1 c6 K8 H' H
这种设置只有当URL为http://server.domain.tld时才击中主服务器
: `4 n- L( J& M8 h8 X
! p1 t; Q9 F1 i: o4 j. q0 ISetup 3: 服务器有两个IP,
& O8 S1 C  A- J! z# e% Z7 R7 w* P8 d
' M# ^# J) ?1 q/ ^8 m111.22.33.44 server.domain.tld
( Q" w/ R; ~8 w2 |111.22.33.55 www-cache.domain.tld
$ s+ j& g6 D* r6 \/ ?' }9 Kwww.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。" N; Z! s: W  P- C
www-cache.domain.tld是proxy-cache,端口是8080,Web服务器使用默认的80。7 h- y$ V. u7 f. }
- d/ ^- \9 l% {7 W0 [8 c
服务器配置: ' `# @6 @5 ?* ^3 ?, S: y- f8 Z

2 L  T& U  ~2 W  Q.... `2 W. b: T+ C, m% ], M: k

3 n- U- ~/ E9 G# A) g9 P* fPort 80
; t$ a2 y1 K+ Q+ G$ P  S2 a& i" f. K
Listen 111.22.33.44:80* q, P5 B  J, w0 r4 _
Listen 111.22.33.55:8080- F- Y$ C  L: S

" X( m0 W( d3 s. v( c2 `4 u' _ServerName server.domain.tld& t" O% Y( g6 ^- ~* v
<VirtualHost 111.22.33.44:80>0 B$ s( G0 ?7 k; E$ J
DocumentRoot /www/domain
$ D1 e$ D6 Y8 O5 L+ z! B( _0 P" m6 XServerName www.domain.tld; u9 N' ?5 t$ [+ U# l9 O
...9 O/ r) j7 c4 b9 t& v
</VirtualHost>: v7 @. E  g( f. i. B6 p
7 w* `) T" i! a, A
<VirtualHost 111.22.33.55:8080>7 R* I  n: ~! E1 Y: `$ Q
ServerName www-cache.domain.tld! E( b. C$ b' I2 J$ h
...7 f8 P- I9 K" p( H/ p4 s2 F
<Directory proxy:>7 G& \: s- w% s: g( l6 d
order deny,allow
+ Z; |* Z6 f6 q& S8 s6 U- I3 hdeny from all+ Y- D$ R0 {; U
allow from 111.22.33
2 z% R9 o1 Z" m9 @0 `$ R2 r& f) s</Directory>1 y6 W, k9 W- E9 i( M6 v! S
</VirtualHost>- T( f& Y3 C' p. ^, a% {3 `
. N" L6 w% v1 B" K$ N8 l  ]
 & l5 o  b& ?. t; y! |

6 i8 p+ W- t: [7 o名字型虚拟主机配置+ S7 F4 H$ f- m) F$ ?

! h: k  n0 ~: s3 N4 H3 [9 ySetup 1: 服务器有一个IP,* a  m2 N; C0 G
1 @& c+ p+ i8 M& N  H
111.22.33.44 server.domain.tld. 2 O' z, g  h; ^' n& ]
5 o% r; \' u( |7 ^
www.domain.tld和www.sub.domain.tld是别名(CNAMEs) 。
4 I8 J- T% M/ Y1 I7 V1 I* b6 z; P6 k' ]$ Z/ i- h2 f
服务器配置:
* w( f6 u! r- K/ Y) Z' k8 Y" U5 \( }3 ~* P- }' M
...
, k0 X$ P4 m* p' F" L4 w' C# P, N  [7 q) X( E4 [+ b6 M, I6 P
Port 80; _- U' \/ T2 S9 `, a6 ?1 y# s  J

! x5 [9 n6 |+ c' a8 U0 qServerName server.domain.tld. B" Y' {, Q1 K9 G+ b0 d- c0 ]! v
NameVirtualHost 111.22.33.44 + L4 k" ?: O4 k5 \& y2 S5 z6 k
, A2 B* B$ R0 I" D9 c5 U$ [
<VirtualHost 111.22.33.44>
5 q0 I, [7 p0 |7 I- N0 E  eDocumentRoot /www/domain& C% X. d# ~9 Y1 f1 H: ~
ServerName www.domain.tld# m) z( ^7 L3 U4 L
...
; |- u: {- o6 \! C" U: {/ g</VirtualHost>' U$ A0 T/ s5 d* ]. v/ m2 b3 K

. b6 n9 j( I- U% t2 `* }  H<VirtualHost 111.22.33.44>' T( R6 s8 v+ q" T& {2 n5 E
DocumentRoot /www/subdomain$ V8 L5 G4 r1 z# u+ M
ServerName www.sub.domain.tld; t3 \# B5 \4 X  N6 H' q! m$ e1 |
...8 _2 U1 x9 R$ q
</VirtualHost>
( C+ J' {8 V9 e, r* Q( Z( R4 o( `" U+ s- o' [
若使用IP访问服务器,由于 www.domain.tld 有最高优先级,被认为是默认服务器或第一服务器。
, u9 T6 f' b" n, Q1 p7 j. e+ M0 u' Q) `8 v# ^
Setup 2:服务器有两个IP,* ], |" l( @9 f# S

$ B' C  p( Q8 d3 A& ^111.22.33.44 server1.domain.tld 用于主服务器
) C3 [' R8 S2 h  \3 ]111.22.33.55 server2.domain.tld 用于虚拟主机4 Y1 X# ?" ^- [( x3 ^& C, ?: Z
别名www.domain.tld用于主服务器,
# Q% d% E  I) y! n- s$ a别名www.otherdomain.tld用于一个虚拟主机,; e  c( u& t2 q
别名www.sub.domain.tld,*.sub.domain.tld 用于另一虚拟主机,
9 Y, k& [: l3 B( t4 Z7 p: v- Y& V) n' X' y) ~. a8 s" C5 B- ~
服务器配置:
  ]* i2 h+ [" R: {1 W, g* B  E, Z0 i. _; V% ?8 T  w; }
...
# \: S! J+ Q$ |/ e$ Q. S. ]3 v' m- o, {5 }) K6 ?' b
Port 80& @* d  q& g2 k0 v; l- j# s: j$ T

8 |$ n* x$ ^) F6 r# x; ?ServerName www.domain.tld
! ]3 l( Z2 j5 f/ Q* QDocumentRoot /www/domain; C8 z* t+ P. X7 l( c$ [. J3 f3 V
NameVirtualHost 111.22.33.55
9 C- J6 k9 n* g& L2 ^<VirtualHost 111.22.33.55>
( [! p. \' ^; Q5 sDocumentRoot /www/otherdomain6 f! G' T5 C8 X/ U- _* A6 }$ P9 S
ServerName www.otherdomain.tld+ f5 V! B/ F' o0 Q
...
$ K2 ^% C0 p. P4 ^; ^</VirtualHost>
8 L8 l. B, T* r( {+ l" n
& W! Z( ]0 Z3 q8 M% z<VirtualHost 111.22.33.55>$ f( Q* \3 {; g4 T
DocumentRoot /www/subdomain
# B$ r% c' @! C1 m+ y/ @ServerName www.sub.domain.tld
8 r3 p& @. f6 u3 SServerAlias *.sub.domain.tld
4 I4 p7 ~9 U5 k5 Y...4 K: e0 v" y# H2 a
</VirtualHost> 9 N! M% O' u$ w$ K
8 J' z! Z1 f6 ]( v6 a0 l( k) ~8 D% h
混合型(IP/名字)虚拟主机配置
9 y& [6 R7 P- [0 I' k) e% j0 g- P( s  K
/ K$ k. m& o2 _  p. f. ~! G3 nSetup:服务器有三个IP,
; |2 r! A) O8 z2 b" c6 H! R0 Y  H, Y+ ]5 f
111.22.33.44 server.domain.tld 用于名字型虚拟主机
* e/ k7 w' y) j& B* i$ P111.22.33.55 www.otherdomain1.tld 用于IP型虚拟主机4 y* ]* B" ^1 |, n' Z- }
111.22.33.66 www.otherdomain2.tld 用于IP型虚拟主机8 B, L( V/ f" Z# d

  I$ {: O8 s% x5 Q- E' z$ `! M服务器配置:0 j6 e8 I5 `2 W9 {* ]
...
" @. @7 ?' ~6 q1 \: s- \4 T3 O. @0 s, j( ~  M8 `  H
Port 80
. {- r# c5 O: w: C. Z% _  oServerName server.domain.tld$ |- u# P& D3 `6 p
1 D0 e( Q( \% ^- |; Y
NameVirtualHost 111.22.33.44
' v& j6 m/ c% k) R* T! ]' B2 ]. f9 v9 ]1 L
<VirtualHost 111.22.33.44>
$ A4 m8 T* \7 \# S  SDocumentRoot /www/domain
& C; {8 ]: [1 v. A, y4 y4 o, DServerName www.domain.tld: v8 g/ s5 b9 t  _
...3 m/ V/ x/ X8 X0 @& Y- f
</VirtualHost>; t; @- ^. p) x2 v
2 Q# X2 v% b! l2 E
<VirtualHost 111.22.33.44>
) V* J) l0 i& k: n/ _DocumentRoot /www/subdomain17 ~- ^2 r: Y( B( c( e
ServerName www.sub1.domain.tld8 o; C% D2 Z: d7 L' U. t
...
/ H% K5 }& V9 H# c2 ^# v: O</VirtualHost> 5 {! D# N+ f: v9 G

6 y$ P4 z: A1 d2 R<VirtualHost 111.22.33.44>8 l7 l& V: V( |1 J3 R! S. E
DocumentRoot /www/subdomain2% H8 |6 I- f3 z
ServerName www.sub2.domain.tld) E, q. H5 {* T% t0 i# @
...
$ R% _7 [- u" T; X</VirtualHost> ' C8 f; w) r1 S1 I- U) P1 Q
, i2 |& ^$ A5 f1 z: f
<VirtualHost 111.22.33.55>
* s/ Q( o1 b/ C& }DocumentRoot /www/otherdomain10 [. J' J- A# r8 A
ServerName www.otherdomain1.tld
4 o8 s  W+ V% U! P* }...7 U# _; F) k8 s5 A
</VirtualHost> + J( }. i( b( l
1 Q/ t8 @1 K5 S5 g/ u
<VirtualHost 111.22.33.66>
% @1 h% p4 N2 sDocumentRoot /www/otherdomain2
& d" J' p' z2 l9 P! M- ZServerName www.otherdomain2.tld
. _& ~0 q! |6 i" y7 ?...$ d0 G/ S: N- v0 S4 g* G- ]: V7 f
</VirtualHost>
7 E. c" V: x' I9 q  n0 U+ h3 c! L1 [
. V  X  ~' `3 p) ^5 P, H/ I端口型虚拟主机配置, [/ d5 r7 _% p% {7 K+ D4 U6 F& g
- v& Z  J/ w: b
Setup: 服务器有一个IP,
2 Z6 D8 O0 N. N# c' f) y7 \$ D. Q( j
111.22.33.44 www.domain.tld
0 c) l6 A8 F/ M$ Z, K% t  x0 s) |6 U- J7 U' v; N5 c) P5 h
不需要另外的别名或IP,采用端口型虚拟主机即可设置一个配置有别于主服务器的虚拟主机。 . E& Z: G7 _0 {2 \0 t, g
0 }( Z- p" Z1 R. k  h- `8 T$ y
服务器配置:
9 h0 c; C4 [* [( x...
& t7 v8 b3 F3 r4 [9 G! `3 p$ ?
( [1 ]# a0 s# i8 ]; r6 o/ CListen 804 p) \; z: a3 E7 p& [3 k
Listen 8080
! ^& S& Z- g. t0 R$ ^; }, Z
7 o4 i% ?4 k' a9 V9 F# M" A7 ?ServerName www.domain.tld; ~; S; n, b4 A" Y
DocumentRoot /www/domain9 f3 k$ |# g6 V! s

) r4 \& O5 ^7 B4 Z. S1 q<VirtualHost 111.22.33.44:8080>" n# I1 `/ L- }0 l% q
DocumentRoot /www/domain22 R- I- h# D9 Y* Y) L# {; e: |: A
.... p& P. p4 D' I1 _& c
</VirtualHost>
6 ?9 ?" |% D; `0 Z8 ~. W+ d8 I2 \
5 _" U* }0 |' V1 k; O( n 
" A) S9 @/ `$ u
/ Z/ ]4 t6 x- h7 q来源:http://fengyu.china.com/Vhost.htm
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-4 18:26 , Processed in 0.020900 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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