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

使用Apache Server设置虚拟WEB

[复制链接]
发表于 2003-10-12 13:37:43 | 显示全部楼层 |阅读模式
unix 平台与NT平台使用apache server的设置相同。以下重点以unix平台为例, @) x( Z9 B' n% }% E
说明apache server的设置。另外值得注意的是,虚拟web的成功设置,有大约6 \! M, C4 M1 C# E, c: E
50%的工作量是在域名的注册与解析方面。所以一般先注册好域名然后再做. N6 f# J" x- M# `( c6 G
虚拟WEB设置。2 L0 n: v2 B: `8 Q# M* i$ F
+ h* X( ?7 U( Q4 m
一 、IP型虚拟主机+ v( t* O2 s! d/ Y
  n7 z/ j2 ?0 u- c  T6 v
IP型虚拟主机指每一虚拟主机对应唯一的IP。可通过多个物理网卡或虚拟网口实现多IP,Solaris2.5和Windows NT都支持这种方式。
0 V# [! l4 `) z+ H3 E$ I- j$ M8 X4 F  f' @9 C% v
两种配置多虚拟主机的方法:
) n. q' r  k  d. g. v9 M
7 ~. ?5 y$ W) @1 R$ T+ E1、为每一虚拟主机启动一个httpd进程。7 Z+ @5 G# i! w# [3 d. y+ f: L% `

! T" f. y9 D& `. T* u9 J. l/ p下列情况下使用此方法:5 {+ @6 O) t# Q3 H7 H
3 _$ M9 y: Z4 J8 [4 a
? 需考虑安全隔离问题,如两个httpd运行于不同的User、Group、Listen、ServerRoot,两者用户除通过Web相互浏览数据,无法访问其他数据。4 Q" h8 Y. Q2 p$ q4 t1 o

0 I4 Y( n1 `3 I, p9 h9 G? 能提供足够内存和文件描述器。' R! j  c4 a" W# ^. Z. O7 O3 [# c
' H. T/ {5 |0 {" ]  J+ b8 Y+ S8 V" ^
设置方法:2 O7 l' R6 {% e7 B
" ?% R/ ]+ y& \. ]$ K; Y
为每一虚拟主机建立一个独立的httpd安装,在每一个安装路径的配置文件httpd.conf里,用Listen指令指定进程服务的IP,如:1 z( t1 Q* t3 u  n+ M. R

' c, R4 L* k  }9 {- p3 UListen 10.68.37.10:80
& O& R2 ?4 `3 }
2 F6 f# z/ ]' ~# ^* v# ~* K2、为所有虚拟主机启动一个httpd进程。
$ p9 \8 ]4 ?  N. o' Y% G- t- r0 ?" w, @, t
下列情况下使用此方法:. s1 E! l# A1 V, [7 r/ J' u
: A# i7 ^3 }9 v
? 允许在虚拟主机间共享httpd配置。
4 F% X+ Q: N$ q7 p. v" ]: n6 r/ i" i& m  V# W
? 计算机服务于大量的请求,运行多个进程使服务器性能降低成为重要考虑因素。
% a2 ^" w* b0 ~7 w: n! j
# C  ^7 h. ^- z( B设置方法:
; u( U# t" F8 H- M7 J* Q
# R8 n7 K* `. [$ p在配置文件httpd.conf里,用VirtualHost指令为每一虚拟主机设置ServerAdmin、ServerName、DocumentRoot、 ErrorLog、TransferLog或CustomLog,如:1 K! Q( e9 x$ e. k

7 J6 b. B. L5 I' z* N, Q& ?0 a5 ^# w<VirtualHost www.smallco.com> #此处建议用IP9 Z  P5 K5 O3 R4 C( a/ }5 u2 b
ServerAdmin webmaster@mail.smallco.com
' P$ |* e: Y  ~8 ZDocumentRoot /usr/local/etc/httpd/htdocs/smallco+ W/ H& x  }$ H6 ]) a( C3 j
ServerName www.smallco.com #建议此处用域名
8 y# T' L! `: C, ~& z$ s/ }ErrorLog /usr/local/etc/httpd/logs/smallco/error_log
  r2 O, l$ @' X! T) FTransferLog /usr/local/etc/httpd/logs/smallco/access_log
! f! w4 Z6 l1 g! z- n  o' Q</VirtualHost>9 d% [  @" v4 x. |' d

- {" ]- f4 E/ V<VirtualHost www.baygroup.org> #此处建议用IP
( a! W( X! O# Y, ]ServerAdmin webmaster@mail.baygroup.org$ V& r7 c3 O3 B- A. z
DocumentRoot /groups/baygroup/www
4 g' I' K7 E! x( @; f; NServerName www.baygroup.org #建议此处用域名/ ?* B6 b( m8 v. [6 k# s& I
ErrorLog /groups/baygroup/logs/error_log2 f4 m$ q9 T7 t8 @$ P
TransferLog /groups/baygroup/logs/access_log( @  P, B5 K# S3 Q
</VirtualHost>
, j6 |+ [& Y& d7 b( }2 N- @0 J9 z# ]* d. ?. N# D1 |6 {* F
同时要做虚拟网口或网卡的配置,在DNS也要做相应设置。
6 i7 E5 L7 {- w2 X# d, Q
( `6 I4 C) L8 C7 h7 G7 p. ]二 、名字型虚拟主机(Apache1.3以上版本支持)6 H$ R, x+ o9 I( x' ?/ \+ ]$ @

3 ?- V' ~* H; e8 @! p8 b  IP型虚拟主机虽好,但不是最佳方案。它要求每一虚拟主机有一专用IP,在某些机器上难于实现。+ H9 @0 E+ U2 m+ b
# O$ t+ g8 G' Q  V3 k8 s: Q) h
名字型虚拟主机是指每一虚拟主机的名字不相同,但IP一样。它的好处是不限制虚拟主机数量,配置、使用简单,不需另外的软硬件。缺点是客户端必须支持该部分协议,最近版本的浏览器都支持,某些老版本浏览器不支持。但Apache为此提供了解决方法。) ^$ y8 n# }7 {8 g$ L( s

) O! w8 A4 v% O6 d" H# u( F( j设置方法:
4 h/ R1 Z8 W0 {) b( A9 t  k) ~+ r, E; W0 f8 X
在配置文件httpd.conf里,用NameVirtualHost指令设置虚拟主机,如:2 a- d& O' A: H' u) j8 T* q3 o
) B  p4 i3 e0 j$ N4 v# l+ R; ~
NameVirtualHost 111.22.33.44
, A' r3 ?8 Q" u, v  a2 Y& T1 ^" `" m! g$ a
<VirtualHost 111.22.33.44> #建议此处用IP* t. q' S3 Y1 y3 r
ServerName www.domain.tld #建议此处用域名
% K3 F) [6 ~( Y0 kDocumentRoot /web/domain
! H2 \, M2 {6 I+ Q2 K% z</VirtualHost>
1 C: b7 ^. C+ ~  G6 v' y
. N2 I$ s, }3 N8 j0 e同时,在DNS定义www.domain.tld指向111.22.33.44。/ r' i- K& @# i" k

! W+ I% {  t9 P6 N/ m注意:当在NameVirtualHost指令后使用IP时,任何使用IP的URL请求都是针对虚拟主机的,主服务器从不会响应一个使用IP的URL请求。( [: ~6 E- u5 w2 [8 c, n
6 I. M# i2 I, l0 L0 _
另外,有些服务器希望以多个名字被访问。例如,假设有某一IP的服务器,希望以名domain.tld、www2.domain.tld都能被访问,做法是在VirtualHost指令部分使用ServerAlias指令。如:
5 m' j# {, P% g7 i* V' y+ E; S8 ~; p+ T
ServerAlias domain.tld *.domain.tld  R' I) O, ]: ?+ v8 I' j& \0 b
. l9 z( w2 O4 O) Y6 \5 y8 _/ `; a
另附一些虚拟主机的设置实例。 4 S4 o8 P' z. k3 K
/ ?" J, P* W8 N2 P
 3 v$ g6 y3 C3 n7 J+ e

" D" D" }% ?% M0 {; a( X; L 
$ o/ `+ i. W' E4 F% z) o9 `0 J0 l- h; g" i1 g
附:虚拟主机设置实例/ Y2 W: S! }4 W( R& M! Q3 x- ]8 u

' x% m; c% D1 T  s6 vIP型的虚拟主机配置7 W* w+ e9 e* M0 l- _
# e/ K5 o/ y9 E9 |! E( j
Setup 1: 服务器有两个IP,
) e5 |0 g2 X1 l: Y9 [  h2 N
0 q2 B% k, m& U& E1 `111.22.33.44 server.domain.tld: W7 }8 k, k( R1 s/ N* D, b7 {- r2 x
$ B/ ~7 S( I! j
111.22.33.55 www.otherdomain.tld+ k3 Y3 I' H# Z4 y' j: B
, G) s9 A! s! N$ }
www.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。7 p0 {$ W7 z+ t+ |1 `+ o" L/ I

! Q7 n$ C6 O+ K; J, O服务器配置:
9 b* ]7 r  `/ }9 n' |" T8 J- n; B3 z  ~
...
: z' W4 X. v& m5 [! C; s2 R' _" M/ H
Port 807 E. V5 J- c; m' z1 C/ {

, `+ A! H- m9 @: p6 bDocumentRoot /www/domain) V4 P4 [8 `: [+ A& V
ServerName www.domain.tld  C; {+ q  {7 y" Q$ m; ~0 K
<VirtualHost 111.22.33.55>5 F0 x4 x( U/ \5 Q' B
DocumentRoot /www/otherdomain, l; f2 m" C9 [/ y
ServerName www.otherdomain.tld
+ U8 k" @5 g( `( {3 w/ t...4 }% d- X# `- `
</VirtualHost>: g% g, [$ P: m9 W! E  w( Y9 x
- Q6 h! p) |" o8 b  H
Setup 2: 基本同Setup1,但不设置专门的主服务器。8 K/ ]8 p$ n$ Y7 t9 _! X6 W

! S7 X" K$ V8 Z* {7 }服务器配置:
7 L3 v  O. v, f7 K) v) J( g, R; e5 Y
...6 x$ D7 n  W6 f5 l8 k

/ {! ~) g5 d- k4 p; D' P4 S/ fPort 80- D% s& c# e7 }1 D

8 T& t2 T1 j# }ServerName server.domain.tld
1 u- A6 U: D+ n<VirtualHost 111.22.33.44>3 x+ D, S9 J+ ^, |% ]; |
DocumentRoot /www/domain
5 F! }5 f3 M' t" T2 e" F9 T- R8 W% JServerName www.domain.tld
( w% h9 v( ~& L. V6 \0 h: ?.../ r$ [& m, S, V$ G/ H
</VirtualHost>
- r& `) I, \9 S
2 T7 m2 i# B- |9 [/ |<VirtualHost 111.22.33.55>
6 x0 x7 m* T# ?) eDocumentRoot /www/otherdomain  v2 {# f3 x2 ^( ?7 b- E$ z
ServerName www.otherdomain.tld
& S' E& k# p" i0 D) ~( X...! r& p  C5 J3 g8 X: h: x
</VirtualHost>4 T9 i$ K; d( u8 v* l4 l4 q
- F3 Z" A+ A8 M
这种设置只有当URL为http://server.domain.tld时才击中主服务器
7 B8 c% y; C1 t" Y& L
; \6 B: e( y' A8 Q: vSetup 3: 服务器有两个IP,
  J; Q4 x( p7 Z) I8 ~; T& ~# M$ C9 r+ C6 c" n! l6 Y0 Z
111.22.33.44 server.domain.tld
  ~6 j- Q2 ~( H111.22.33.55 www-cache.domain.tld
" }+ k+ Z; [9 awww.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。
" Y( n+ L# H% h- Ywww-cache.domain.tld是proxy-cache,端口是8080,Web服务器使用默认的80。
/ U) l3 o" z' _3 N1 _4 O6 y( E7 O! t$ G% P; O4 q5 p
服务器配置:
( M- \% c4 p& T( P- u, x8 D8 X1 W) ]" o
...
2 Y- J0 n8 [5 X0 ?2 w
* W# i9 @0 v) X3 B2 O: bPort 802 G- D4 \/ w9 r
3 d3 D, S* t+ w$ Y; D$ u
Listen 111.22.33.44:80; i; V! P6 o; Y. @& C# X, X
Listen 111.22.33.55:8080( O/ F) P8 {& R1 n4 O* X% _
' ~2 Z5 Z' J0 s- _- x
ServerName server.domain.tld
" c2 J9 I4 k8 Z+ P5 n6 U5 e; `$ `9 w  C<VirtualHost 111.22.33.44:80>
9 v5 R! \4 c. ?DocumentRoot /www/domain
, W( v8 }: m: L, M9 p2 t8 fServerName www.domain.tld
2 _7 a  S0 p" ~: h, B8 A0 u1 N..., r' t8 u6 b+ A5 ^: x- X$ L
</VirtualHost>8 @& [( V( [3 p) g1 u

" Z2 f% s4 A; J0 m" `% M, c% k' Z<VirtualHost 111.22.33.55:8080>; l! w' Y) k( o7 z
ServerName www-cache.domain.tld$ \9 V$ P0 R& W' L. |
...
0 }, `9 C7 Y$ w+ d" h( [2 N, {& j<Directory proxy:>6 x4 \4 y+ L# p4 X( g" F
order deny,allow
; R; i# Q+ E5 J; B, |5 x3 Q+ O# Kdeny from all
6 y6 Q' x: M% C( jallow from 111.22.33
5 P) O+ n4 W+ r</Directory>
; v$ Z, T* Z+ Z5 T% R3 Z) J0 V$ ?</VirtualHost>
6 I6 x& G% @4 F  H* m
  `% V  k4 U2 E4 n- C4 u 
* O* ?$ ?& a  `
# T' N" X# b+ _  W) f1 o( z5 |名字型虚拟主机配置
/ N1 p: U' k0 b
6 k) Q8 n4 s" r4 N2 G5 MSetup 1: 服务器有一个IP,
2 C. f) Z9 f% F
! E" ]. p2 U3 V, a111.22.33.44 server.domain.tld.
5 u" f# y+ ^  t; [$ a
. q5 ~2 |) r% t, [; c0 z" xwww.domain.tld和www.sub.domain.tld是别名(CNAMEs) 。
$ S1 r% Z; @& Q3 F  `7 z/ ^1 {
% b5 L& H! ^8 M% v5 i  e  V* J" T服务器配置: 3 q0 B% ~8 N! q

6 D+ V" @  J" @6 I% {8 J' D...
% r1 F! B8 G7 y1 N1 O# }8 N6 [! g8 {& p2 ?. H) {6 _
Port 80$ E3 T: S+ l! _/ ]

7 a3 U" I; X4 K4 a8 c. v! I0 c- F3 OServerName server.domain.tld
% {! w  ~% w: S7 L. M' P! g! CNameVirtualHost 111.22.33.44
5 L6 u7 O# J: t6 s2 L3 n. d. `  B+ _" ^& s2 R. I0 H  A1 B* I6 m
<VirtualHost 111.22.33.44>! W% n6 }- @) B& C7 K; k3 @" v5 }
DocumentRoot /www/domain$ c6 V2 @' T3 Z6 m
ServerName www.domain.tld
+ V$ ]# N2 U, }: [...
  L8 i& j# w: D0 a2 w" A</VirtualHost>
( ]2 {# g, F' [% l( q" G% {
. ~8 ]' s# I* w; A<VirtualHost 111.22.33.44>& L1 J9 ?+ H; P% r* c' A) }
DocumentRoot /www/subdomain
% B, O& B' a# z; S% j' ?: q7 yServerName www.sub.domain.tld
/ ^; {4 w8 n8 }: v...
% Z6 T1 C' b7 J8 u</VirtualHost>
' f% q! n; S; o0 K- d+ G/ ?1 m: N2 A+ P5 A; |. }' O& ]
若使用IP访问服务器,由于 www.domain.tld 有最高优先级,被认为是默认服务器或第一服务器。
5 {+ f, n3 d6 O. P/ C# A' Z0 R
5 @& m. H- ~+ R& vSetup 2:服务器有两个IP,
  D7 I: V1 ?6 g: e: _( @8 Z
1 l9 Q! t9 w; s- W/ o( Y111.22.33.44 server1.domain.tld 用于主服务器  l5 L' Q2 ]" e3 Y
111.22.33.55 server2.domain.tld 用于虚拟主机
, w( M  F6 g' g" w别名www.domain.tld用于主服务器,
3 _2 D" L+ w$ ?别名www.otherdomain.tld用于一个虚拟主机,# x1 C, G0 y  H/ a. b$ z0 O0 ?
别名www.sub.domain.tld,*.sub.domain.tld 用于另一虚拟主机,: N& D9 F' A9 @  @( v; ^
9 ]" ~' E. P- W  w) q7 \: ^
服务器配置: 7 _9 o1 n5 K0 ?  f6 [2 x+ G- L
6 k+ P" D" O' l0 Y
...1 Y6 H# J; A( u! h$ ]1 T4 {

+ E$ P1 ]+ C  s: D6 T) _5 s9 V2 m# |Port 80
8 {- u: L0 }! F0 C6 A/ b$ t9 w' {
ServerName www.domain.tld
6 I+ J0 O( D& @DocumentRoot /www/domain
6 X& j0 h' L- ^( s. e$ ^* A$ E3 p2 ANameVirtualHost 111.22.33.55
* b( k) j8 x# Y  b1 v2 _0 X<VirtualHost 111.22.33.55>
& i/ g( x1 i% K8 c3 PDocumentRoot /www/otherdomain
- Q9 U2 ?: S" J3 G9 g( }  z9 zServerName www.otherdomain.tld
2 h% i+ ^8 H( I% R1 ~...! C2 G& F6 _! r: s+ w: B4 C
</VirtualHost>2 z6 c  @5 u: j! q6 l$ d

( W$ j0 O0 @% N* W. {; t" L" T<VirtualHost 111.22.33.55>
' H0 t$ J8 Q; |) pDocumentRoot /www/subdomain: \: D9 ?( ~5 x* E4 ~
ServerName www.sub.domain.tld
4 X/ S/ `- d! p" WServerAlias *.sub.domain.tld
/ I% h7 ~6 j6 ?...
, m# [/ Y6 ?5 d: I; `  ~9 l</VirtualHost>
, _6 k' V4 H5 k0 I7 o4 H
/ I( T9 r" H1 _) [! x" S混合型(IP/名字)虚拟主机配置
/ O# @2 x8 ~$ b- J
( d' W9 b3 T! m& K, b* wSetup:服务器有三个IP,
) u" M# I, s+ R7 D- U8 N4 f
% `; c1 K0 s2 P; q111.22.33.44 server.domain.tld 用于名字型虚拟主机. n: x, m& I. a4 ]0 j, K4 u
111.22.33.55 www.otherdomain1.tld 用于IP型虚拟主机
3 `6 |  r, e8 k  P111.22.33.66 www.otherdomain2.tld 用于IP型虚拟主机% {$ c0 }& v0 }' w7 ^8 S* R

( a" O8 o6 |* U! A9 ^& u1 c服务器配置:
, m7 q7 H; F3 `5 p...
/ j1 Q, Q) \! \7 v7 s* n8 L9 Y* C0 g2 W
4 f' J+ ~( ?* n/ z8 f; G# P- EPort 80; y: [/ o, |* j* X4 s
ServerName server.domain.tld
% F' T* d* t4 H" j( e- S* s/ F3 u. I: q( p1 @( E
NameVirtualHost 111.22.33.44% v: a& q7 ]' Z; f  x

+ l0 T3 b, m  _: i- A<VirtualHost 111.22.33.44>
; m2 M# C2 @  [9 W- KDocumentRoot /www/domain
1 j) B6 `; P1 B  h! z0 ]- CServerName www.domain.tld
) l5 \7 A( N/ E! P' O7 c...
, h5 I: }9 w# b0 e" {& Z" H</VirtualHost>
* q3 Z5 ?1 V0 [, A9 B  b1 B; A4 p9 _
<VirtualHost 111.22.33.44>
# P* Y2 I% d# o% V  r. g5 R' WDocumentRoot /www/subdomain1% Y* t$ j  H$ h$ q( Q! F
ServerName www.sub1.domain.tld  Z7 h- I" R/ E1 W* [' m! d) x
...
  r1 ?5 J- B6 E2 A; n' r6 E</VirtualHost> + f5 M) o) b0 w+ W3 W( P

  J1 l" l+ O  b9 |  _  _<VirtualHost 111.22.33.44>5 X* ?" w4 ]3 s+ u$ w: y
DocumentRoot /www/subdomain24 D7 i" C' I- f; L9 m
ServerName www.sub2.domain.tld7 K$ ^0 O5 F/ g# U% @" e
...
- o' q& k* t1 ?( C' |% A6 C3 b6 \</VirtualHost>
4 B6 A% }* q3 a. _# s+ a: Z! o2 Q0 y! i, J4 ^6 x
<VirtualHost 111.22.33.55>
' f) e$ ]* ]3 }0 x9 W5 J; oDocumentRoot /www/otherdomain14 h9 r/ m; Q, Y8 W1 P9 p" i7 b
ServerName www.otherdomain1.tld% c, q6 H6 \; W& q
...
; x& h' E# A8 O5 l</VirtualHost>
( z( U+ ^! e) _3 ]+ D# f3 W1 d3 o  _" Q, D
<VirtualHost 111.22.33.66>+ a) k* S% {1 U' `& Y% D% ~8 s
DocumentRoot /www/otherdomain2
- u5 E+ s% s& c, P2 K1 EServerName www.otherdomain2.tld% ^2 u/ V# E/ s! Q
...1 @1 e9 v! C- Z* k. a
</VirtualHost>
: d1 K0 u4 u6 _5 R
- U+ x  X. P- A; {) n- r" u, [端口型虚拟主机配置
& _! m# F- i$ t" d7 N0 p1 u7 ^1 U( I6 q/ ?' e( [0 ]: d2 R' d
Setup: 服务器有一个IP,
6 q8 \& w' ?. O8 Z1 V( E- o; P. h- W/ p. a, _+ }
111.22.33.44 www.domain.tld
# B/ a/ h& ]0 B+ t. v" @" h8 Q3 V7 g+ |+ {+ C. v2 z
不需要另外的别名或IP,采用端口型虚拟主机即可设置一个配置有别于主服务器的虚拟主机。
5 R, W5 L( o: W; l0 t$ u1 A  {" _/ Q! ?4 O0 \; r% u
服务器配置:
  s* ~' v$ |8 \1 Z$ g! l# ~# b* m5 R.../ d1 n) ^& ]" ^! n* i
) @6 P& ?# d- X' k
Listen 80- _0 r. M; `3 |8 ?. x
Listen 8080- Q2 J0 m9 X0 J

5 j7 O% \0 d6 @! L! ?& VServerName www.domain.tld" |4 D5 G+ R1 ]# X* h
DocumentRoot /www/domain5 @0 M6 s* u! i% L: Q% U9 X$ i

$ u9 S* H) Q9 K$ A<VirtualHost 111.22.33.44:8080>5 N; E3 S1 z6 p% L
DocumentRoot /www/domain2/ o5 f% x! W, C5 t
...
* @% \2 @6 m/ @: @, `5 V* H</VirtualHost>8 {$ k" o) W3 L1 b
# U0 @  Q+ Y0 E0 z
 
! \  t. l$ }' m+ }8 ^7 C* k+ ^! s4 M  k$ e0 _  H. V
来源:http://fengyu.china.com/Vhost.htm
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-14 00:59 , Processed in 0.019702 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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