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

使用Apache Server设置虚拟WEB

[复制链接]
发表于 2003-10-12 13:37:43 | 显示全部楼层 |阅读模式
unix 平台与NT平台使用apache server的设置相同。以下重点以unix平台为例7 f2 o& r: \+ F: j) v2 N  [
说明apache server的设置。另外值得注意的是,虚拟web的成功设置,有大约" T3 R" ]7 Z7 c/ Z$ P
50%的工作量是在域名的注册与解析方面。所以一般先注册好域名然后再做! Y& `' H$ \  b* W6 }! X( d
虚拟WEB设置。
# c  F% N2 W$ M4 |: h1 \" {, d$ ?& g5 U" @4 R
一 、IP型虚拟主机
$ j. ^: n/ M5 D2 N
; J3 O* L2 o2 Q1 V, f" Y5 D  sIP型虚拟主机指每一虚拟主机对应唯一的IP。可通过多个物理网卡或虚拟网口实现多IP,Solaris2.5和Windows NT都支持这种方式。
) g' A6 \- ?1 R0 V3 _: U
2 {) I( Y, ~5 }% {: [1 k( v% F两种配置多虚拟主机的方法:
( Y  F9 L% T; x- L/ y# d' m: o# z! g8 V& b! V0 i7 U
1、为每一虚拟主机启动一个httpd进程。
3 `, x" R  q( y4 D
. i. D: s; e: t/ N下列情况下使用此方法:
- ~+ x. ]5 Z9 |" F* O* o6 I* @0 @0 T5 ?% a$ g2 ~0 o
? 需考虑安全隔离问题,如两个httpd运行于不同的User、Group、Listen、ServerRoot,两者用户除通过Web相互浏览数据,无法访问其他数据。
( W8 t# O7 u1 f' B! j2 L' C2 h, n5 T* F! q& P2 V5 n
? 能提供足够内存和文件描述器。
3 h3 u& I# h; L- F4 _5 l. G
% Q1 c# k4 p5 n  c. U设置方法:
2 ]1 O+ N" X1 c/ k0 E& U
  l* l+ X: E5 V; W" a4 c+ Q为每一虚拟主机建立一个独立的httpd安装,在每一个安装路径的配置文件httpd.conf里,用Listen指令指定进程服务的IP,如:; r8 g. o0 a8 ^
9 t" g2 t! P! A$ C$ D# \# i
Listen 10.68.37.10:80
( p$ e( ^7 n- r) t6 Z$ X' [$ F: B  U$ R0 N4 e5 x
2、为所有虚拟主机启动一个httpd进程。
1 F1 i- `+ l. M1 A+ }; k" }
' r' w2 w9 f* F下列情况下使用此方法:
1 T- U" F9 ?; A8 b
2 {5 e! M) ~6 c& J6 l; S? 允许在虚拟主机间共享httpd配置。( @9 M- [% S- g4 ^( K8 L

' i0 }# A5 P) m? 计算机服务于大量的请求,运行多个进程使服务器性能降低成为重要考虑因素。( V( `' @/ C& H) P, U

. K. a) b2 M  A) n" ^4 k# u7 U" O设置方法:
1 i: q# m+ S9 }6 X
1 D" B) g$ e2 Z$ H& M在配置文件httpd.conf里,用VirtualHost指令为每一虚拟主机设置ServerAdmin、ServerName、DocumentRoot、 ErrorLog、TransferLog或CustomLog,如:
' I" A$ w/ I2 }& D8 D) e8 C2 {! G0 B5 p9 o
<VirtualHost www.smallco.com> #此处建议用IP( I3 V7 E) j3 q
ServerAdmin webmaster@mail.smallco.com$ \7 S* }! Q2 g! Y6 e# j- {" f
DocumentRoot /usr/local/etc/httpd/htdocs/smallco. r) S! S" ~6 i! z: o1 A
ServerName www.smallco.com #建议此处用域名
8 F& [# J! R  @/ C( hErrorLog /usr/local/etc/httpd/logs/smallco/error_log
9 u, i" O- F& V( \& j. [TransferLog /usr/local/etc/httpd/logs/smallco/access_log% U, i- V: M: X. J# F6 T
</VirtualHost>; d0 j9 D5 a4 K: A9 L

+ k* a* L* \3 m" Z<VirtualHost www.baygroup.org> #此处建议用IP8 R) S6 c; K9 z! S
ServerAdmin webmaster@mail.baygroup.org1 F4 V; k+ ]/ V* V6 f/ c
DocumentRoot /groups/baygroup/www" k4 `0 H, @& ~( Y7 ?
ServerName www.baygroup.org #建议此处用域名
3 ^3 I) @4 L* c3 ~7 @ErrorLog /groups/baygroup/logs/error_log# r8 T: g* {8 M# i; W
TransferLog /groups/baygroup/logs/access_log& o8 E4 q9 U; I
</VirtualHost> 5 z3 I9 b/ Q3 C, I
+ z& U  |( v6 T
同时要做虚拟网口或网卡的配置,在DNS也要做相应设置。5 B" G$ o+ Z4 f" I: {
! ^; v- K: c' e. S
二 、名字型虚拟主机(Apache1.3以上版本支持)
4 I7 z9 h8 x0 l- o. \9 w% h% _; w
0 B5 e% n+ v& l9 P; e- L  IP型虚拟主机虽好,但不是最佳方案。它要求每一虚拟主机有一专用IP,在某些机器上难于实现。1 `% j8 j/ l( d6 Y% Q

5 e3 p8 x+ w4 \; M名字型虚拟主机是指每一虚拟主机的名字不相同,但IP一样。它的好处是不限制虚拟主机数量,配置、使用简单,不需另外的软硬件。缺点是客户端必须支持该部分协议,最近版本的浏览器都支持,某些老版本浏览器不支持。但Apache为此提供了解决方法。
0 o& C1 r& n8 M4 r% F" ~' R2 Z# x% \0 t
设置方法:
3 \) `% e. J& c0 l
% P; H5 [/ f7 Y2 O4 Z  c在配置文件httpd.conf里,用NameVirtualHost指令设置虚拟主机,如:3 x1 |" J1 z, c. G- e
9 _4 |0 b( A; x" ^& K
NameVirtualHost 111.22.33.44
6 n- K; ]7 A& k- _, i
- v% ^& D5 h! C" ~! C2 f<VirtualHost 111.22.33.44> #建议此处用IP" F9 E8 b/ X" Q! y/ C# T2 C' n
ServerName www.domain.tld #建议此处用域名' o! U4 L% v# w
DocumentRoot /web/domain; M8 Q6 m# @9 Y0 g. c
</VirtualHost>
" }3 |) i+ d) [) o+ x8 s7 h/ P3 p7 f; k8 y0 O
同时,在DNS定义www.domain.tld指向111.22.33.44。
$ a/ E  w. g! J3 a8 M0 N& j1 \. s3 g" F0 c' G: Y! H' n  A
注意:当在NameVirtualHost指令后使用IP时,任何使用IP的URL请求都是针对虚拟主机的,主服务器从不会响应一个使用IP的URL请求。- f, S6 @2 O  C) I* R0 l' c
4 F5 [- s0 N6 d4 f
另外,有些服务器希望以多个名字被访问。例如,假设有某一IP的服务器,希望以名domain.tld、www2.domain.tld都能被访问,做法是在VirtualHost指令部分使用ServerAlias指令。如:2 w. o9 |3 F1 q. h% p
' K" p7 w! d* J
ServerAlias domain.tld *.domain.tld
2 j- ]! c6 I2 Y3 j+ V- o
% v! r+ D2 V5 Q4 Y- O另附一些虚拟主机的设置实例。 . j8 z3 w! \% q; i( }- J! |

8 H2 _) F) l7 p! h* m& ~ + c# ^" r- y% B! O6 b

; u# e1 o8 m8 q3 Q: d+ ?0 C7 Y* R & B! x  R4 y1 r2 M
) [. H# b, F) H1 n$ j
附:虚拟主机设置实例9 o3 A1 z3 w- Y/ k

/ @. X1 s; u4 ~1 |9 x- \IP型的虚拟主机配置
8 G1 n2 e$ U+ j% e
/ @# m% F" _! v: l( p6 |; y$ vSetup 1: 服务器有两个IP,
4 I% ]4 |) M9 U& R/ O0 g) c/ r4 V+ H; s% R% {
111.22.33.44 server.domain.tld
0 X; f  A% b( q( F
+ t% K# E- C4 w) F111.22.33.55 www.otherdomain.tld
/ [9 f& }  T  \" W# N7 b0 O. Q& x% H4 A/ x( b/ h0 h3 T3 ~1 \
www.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。: ^! J6 w+ T9 X! M, D* @

- g' R% K- t# J' T* p8 d服务器配置:
! |  `4 @% Q0 m4 `, [; _( E" k- A' w6 @/ F+ c1 a
...  @- ?3 g, R$ G3 a5 W4 p3 @4 @, d" Y
3 e+ {9 L) ~' Z: n4 c
Port 80
$ ^& ]% F6 ~; \- p/ `3 C: y. }1 X" l& `, B) c
DocumentRoot /www/domain
, z. ]6 T* p/ u3 o3 d# F9 u) hServerName www.domain.tld
, g* f2 r7 M3 Q3 f<VirtualHost 111.22.33.55>4 b( ~& X% i1 D) g0 _9 a
DocumentRoot /www/otherdomain) c4 a) |# C* T& w3 o
ServerName www.otherdomain.tld3 O$ h! v' K& P
...
6 x& t$ }9 ?" w( @; z, ?& k</VirtualHost>5 i, r" z4 S- }/ Z+ @

( n+ S! ]# ]8 c& ZSetup 2: 基本同Setup1,但不设置专门的主服务器。9 \; T( w% L' q' A" ?/ D* c% }

+ I: Y, x) P1 e服务器配置:( ^$ |8 T1 Y3 M

5 R, T8 |' ^0 i# S5 X...  H& a1 D: e7 G! l5 ]5 M
2 K  [" ]8 W0 ~# }$ p
Port 80; q& E! L* w7 m* N. E/ @
8 u3 U4 X- f7 _! C' y8 r5 d
ServerName server.domain.tld* K) S4 I  G+ h* R) |" X  Q1 d
<VirtualHost 111.22.33.44>% i" m2 t6 b3 W1 H8 m2 H0 Y5 d
DocumentRoot /www/domain
* h9 x) |0 Z- J  A4 I; p. |! u8 aServerName www.domain.tld- V% i# b) i) Q; Y7 V# [/ v4 j
...
$ N2 b, }% F8 k) x! c: i+ V</VirtualHost>* }0 K5 J" R  ?! t/ H
/ t3 ^2 g1 W0 V  \
<VirtualHost 111.22.33.55>
! Z% t  e, Y' ^4 D# ADocumentRoot /www/otherdomain3 y) C- B# O4 j0 R( W& y$ V, [; D) r
ServerName www.otherdomain.tld
0 f9 u  x* [/ t4 ]1 \& m( `..." R7 E6 f, V4 \  V
</VirtualHost>! u6 P# n# |1 g5 P$ F0 D8 M
! @! s5 B% W' X, |& H7 Z8 m
这种设置只有当URL为http://server.domain.tld时才击中主服务器
' Z& y: y% e, i* o2 a8 }
& e$ G3 P! l# r5 bSetup 3: 服务器有两个IP,
0 X# r1 b* A2 s8 K  n9 d8 `: k  @9 H  U" b
111.22.33.44 server.domain.tld6 X& D$ a- n+ [- o! r
111.22.33.55 www-cache.domain.tld
, O8 X' b% R+ M) Owww.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。9 m5 L. [7 H5 m: i4 p, f
www-cache.domain.tld是proxy-cache,端口是8080,Web服务器使用默认的80。* S  m2 q( Z" D2 E8 W# Z7 g6 g; g2 z
1 o/ f& K! @6 _  E8 c8 S
服务器配置: $ G# n0 y9 S* y* {

6 m; Y2 M# h) a7 u" S+ F...! a( q' v6 V  X
7 E6 x* m4 C& y
Port 80
. o4 {% c- m; s! y. f) O! x3 B7 G$ w9 q+ a6 h; S% P
Listen 111.22.33.44:80, Y4 D+ D& ~( {8 X( t
Listen 111.22.33.55:8080
7 w+ I3 X: N4 `6 h7 Z" r6 l
6 q$ m3 k; z1 WServerName server.domain.tld
4 A9 Y3 i; X# Q% Q<VirtualHost 111.22.33.44:80>
! [8 X3 k, u7 [- Y" BDocumentRoot /www/domain4 S, T: I) g' }+ Y  w
ServerName www.domain.tld5 W" R$ {, |5 ?4 A  ]
...3 C* t: U+ F& w2 r/ g
</VirtualHost>2 R. y$ e4 d& ~5 ?, B6 C

, o) V) f, m& A<VirtualHost 111.22.33.55:8080>
, C  r7 a( w# _- s+ t5 GServerName www-cache.domain.tld* H6 n  K) @' w' @4 I3 Q' Q' O+ F
...0 B4 o/ Q2 D" F. W
<Directory proxy:>" y- A$ K) X% C4 D
order deny,allow: a; F' ]  J( O/ S) y; @9 |
deny from all
$ d" ^3 Q. ?! k3 e2 @4 C, Z$ O6 E) X% Wallow from 111.22.330 S* d4 S- ]. a, J, c$ O
</Directory>, R) c' t% l* t5 U
</VirtualHost>& I7 o" x" B, E! f. u
& \8 c. V+ w7 l1 C4 e
 2 L& C" w  ]! h
5 T8 r+ j; \: a* S" C' I
名字型虚拟主机配置8 t* c4 z; i6 U0 \9 H" N

- S/ y6 M+ T( h' m6 ySetup 1: 服务器有一个IP,
* z0 L* }( w" K; r; T, ~
0 f6 z) O- h) c7 ?6 p111.22.33.44 server.domain.tld. 4 c5 U+ O3 H' i+ p* e

) E) Q  S2 i0 u+ zwww.domain.tld和www.sub.domain.tld是别名(CNAMEs) 。 : P  N: B# E! N

, e" I; {$ L3 n+ {6 U3 m, h1 b( Z服务器配置: + k1 d. M  ?, q1 ^
$ l8 A; A' n: x; C* n
...  F* ~3 F  @7 H9 w  x
9 F. m$ W" X; t  d9 l% M2 L. Z1 m
Port 804 ?: ?- h5 Q2 Q+ |% i
4 Q, h7 l  y2 n. p5 U* ?% f
ServerName server.domain.tld% B3 r) }0 B: A$ H3 Q" V
NameVirtualHost 111.22.33.44
) w1 @. v2 \9 X+ m# [
$ ]* b0 r5 ]4 O+ R0 ~<VirtualHost 111.22.33.44>1 h; A  y+ _6 i2 Z, V  |( k
DocumentRoot /www/domain
( x2 z5 I# s9 \6 `+ ~ServerName www.domain.tld
% I: z+ _3 _8 Z5 e...
' {' H5 G6 G  T/ \" E( g; H</VirtualHost>
8 |: y. A: S) a6 U
! y* c1 w. B$ y0 X<VirtualHost 111.22.33.44>
/ Y$ p; L; [+ v$ o  u$ N' q) G- fDocumentRoot /www/subdomain# C  R( m( S/ X5 b& K* f
ServerName www.sub.domain.tld
: m( m8 I4 a, j3 h' ?...
8 d- L/ I) ?1 Z7 v3 a</VirtualHost>
- m( r- j5 A: i
( y& [; q& }1 m7 o# |9 n; {8 d若使用IP访问服务器,由于 www.domain.tld 有最高优先级,被认为是默认服务器或第一服务器。
8 h9 }, f# R/ n
* Q1 T. ~0 Y8 a7 tSetup 2:服务器有两个IP,7 q. b! z0 q. x7 v
! L% ^& X; n/ d
111.22.33.44 server1.domain.tld 用于主服务器! ^3 z/ L* r9 f6 X9 z0 }) j
111.22.33.55 server2.domain.tld 用于虚拟主机( Y. n# A+ ^9 {1 R. k% `! d
别名www.domain.tld用于主服务器,
, W5 D3 N2 W# c% S9 L别名www.otherdomain.tld用于一个虚拟主机,$ S* m  ?  A6 O* k# m! e
别名www.sub.domain.tld,*.sub.domain.tld 用于另一虚拟主机,
; B3 M& {8 J$ I9 G% \$ k( E; D# {
服务器配置: : p3 [5 Y& S9 [& K. K6 Z0 p) S$ [
4 }2 I& W  d4 a9 a
...
" B" X: [6 A! `4 _- ~4 ^8 Q; u5 F
6 X6 z3 G0 G+ o8 j& o% G" Y9 ]Port 80  B! ^$ `. w8 R* r6 J( E+ ]4 u) i+ }
6 T  ]% H/ p2 {0 n. N
ServerName www.domain.tld
6 }4 E& D+ o; F) y# J% VDocumentRoot /www/domain
$ {: `7 H0 P9 z9 C$ {NameVirtualHost 111.22.33.55
6 a- V. [. I9 B, q7 l<VirtualHost 111.22.33.55>' Q8 H2 ]/ z. B% t# g  N
DocumentRoot /www/otherdomain
! W# k' {9 u- u, t$ R& ^8 cServerName www.otherdomain.tld5 X* `8 u1 d. [2 ]/ o
...
9 Z* o6 D. g+ I' A. H7 x/ i2 O  H# H</VirtualHost>
/ j' r7 ?  l7 P7 t" C' m6 X; f. ]4 ], x& W9 G, i
<VirtualHost 111.22.33.55>2 w. j) @! r0 I: L
DocumentRoot /www/subdomain8 O# f0 L& a9 k/ C! V
ServerName www.sub.domain.tld7 U2 T6 A! h. W- p  W
ServerAlias *.sub.domain.tld+ h# l* R# R9 \0 W" m; U! W
.... v* I+ z) p, j- }, H% A
</VirtualHost>
7 ~& i  B  v6 v0 u
  G) X- K2 w! |# x9 [' `混合型(IP/名字)虚拟主机配置
+ V* c: K: g5 K8 L, W; P
8 w! r, I: K) h! g; TSetup:服务器有三个IP,  S/ }3 L" W9 b, w5 `! G% a$ M" a

( D7 s! H" K7 w8 |111.22.33.44 server.domain.tld 用于名字型虚拟主机5 W8 M1 x  C$ Y% b( \$ ~; ?
111.22.33.55 www.otherdomain1.tld 用于IP型虚拟主机
$ U" p/ q& \! K* s! _" T* p111.22.33.66 www.otherdomain2.tld 用于IP型虚拟主机
1 M7 R/ o5 D8 [8 ]7 B& w
$ p# i8 K! Z: r; h2 j1 P服务器配置:
3 Y) i. W* s8 E...
( ?2 R, h/ y% ]6 O. \
  [3 g  g$ ]( a9 K, {Port 80
# g2 h5 _% C2 `8 kServerName server.domain.tld
) g7 t6 P1 b( G4 p. u( y$ x* i! s6 T+ _1 u$ \
NameVirtualHost 111.22.33.44. P" G: ?0 S0 q1 K
9 U' J$ h, _# s  H+ Q* q" u
<VirtualHost 111.22.33.44># i- V% Z5 q; z
DocumentRoot /www/domain) c$ V9 e4 A4 y5 I& m
ServerName www.domain.tld2 O! G& O# [  J* c7 l6 W4 Q% u
...! ]6 J% |* j4 Y' E+ Z
</VirtualHost>" L8 Q  g2 @9 A! f+ [1 p( X

8 l. a7 K% _: M% \<VirtualHost 111.22.33.44>( m" M: s$ V$ l' A+ u0 \; X2 X/ }; E
DocumentRoot /www/subdomain10 d; U$ a9 u( L2 z+ ?* G6 i1 t2 Y9 Z* s
ServerName www.sub1.domain.tld
8 F& V+ o( g2 K! M! j' }...& ?; z& u5 M: l' [8 E
</VirtualHost> % l! I. Z+ u% c; h; D( V( p+ e6 {
: K/ I- q2 T% x: [* t9 i
<VirtualHost 111.22.33.44>/ u" k2 {! h( d( c" r% K
DocumentRoot /www/subdomain2% ~) j. e$ G3 N
ServerName www.sub2.domain.tld9 l, W& ~) M( f9 |2 c$ H
...& ]7 O7 |- ~# S* q' Y% M0 z
</VirtualHost>
- a3 c$ S% _3 R- ]& F
2 E# l8 v0 s1 ~! I5 S<VirtualHost 111.22.33.55>
. r, Q; g- l$ D' d2 q4 vDocumentRoot /www/otherdomain1
& l* }8 V7 e$ bServerName www.otherdomain1.tld
7 n& ^1 g  M' n2 ?...
/ u( ?; O: l% ]# Z+ }& o</VirtualHost> # Y; K: Y8 N8 Z4 a( ~" ^$ k

' b/ Z/ W" @( H  B<VirtualHost 111.22.33.66>
+ Y& R9 U' b& [! g9 lDocumentRoot /www/otherdomain2- t2 c- E( _" N/ [( L
ServerName www.otherdomain2.tld4 ?2 q; T! K; R3 s' w) L# ~( p. s
...
; }7 C/ G2 ^+ j1 d/ ~5 g</VirtualHost>
" w4 ^) Q: @1 E5 D% L0 H. l& B/ u! X; i3 ?5 v# r9 F
端口型虚拟主机配置
7 k7 e7 w& Z* \# H
: p) V8 z& i/ ~; B" iSetup: 服务器有一个IP,& x+ a1 l- N- [& O, V2 S

8 [7 w$ s$ |* A  A( h9 q/ Z  ^2 h/ Z111.22.33.44 www.domain.tld
/ T" b5 l% c: u4 L" q% R
  G3 n0 y( O) p) Y不需要另外的别名或IP,采用端口型虚拟主机即可设置一个配置有别于主服务器的虚拟主机。 ( k4 R9 E; g1 j+ }8 R
* `8 G; H# D! @) y# G$ p
服务器配置:
, H; a* a3 J* `; m/ k; g1 V3 x...1 ~  p4 @- |7 E, I& ^0 {

7 e- S- e% {( h' ~6 A2 H! g; ^Listen 80
- w8 P& j+ s1 x8 `Listen 80808 H, s6 Y$ R9 ~5 l5 t$ o0 K

; R0 f0 Y1 p; N* }/ @9 _ServerName www.domain.tld4 n+ @- \1 P$ E
DocumentRoot /www/domain, T6 B8 ^  x/ b' S8 M

+ \/ x8 n7 s2 d: [; M1 @<VirtualHost 111.22.33.44:8080>8 {, s1 J3 h3 `: s
DocumentRoot /www/domain2
* `" L- a7 X0 q- A5 j; Q! N0 ~...
4 {  V" w0 T/ o# [7 A# C</VirtualHost>: t; j! k; c6 k5 R% Y/ g
6 B9 n: t8 \! a: p6 a# V% N7 h
 5 k" r/ p4 h- @- {1 r
: n, ?1 n( Y  V8 \- R' I0 g
来源:http://fengyu.china.com/Vhost.htm
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-15 06:39 , Processed in 0.018744 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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