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

使用Apache Server设置虚拟WEB

[复制链接]
发表于 2003-10-12 13:37:43 | 显示全部楼层 |阅读模式
unix 平台与NT平台使用apache server的设置相同。以下重点以unix平台为例
8 {0 X. z9 |! L7 A; Q+ e说明apache server的设置。另外值得注意的是,虚拟web的成功设置,有大约9 M+ Z. L9 f# x: P3 H4 Q" `
50%的工作量是在域名的注册与解析方面。所以一般先注册好域名然后再做, }* a5 c$ G; O+ s7 B1 q0 O
虚拟WEB设置。
& y# `; M; t4 |) J2 e
, J& j+ _! O4 O& k一 、IP型虚拟主机
: z) [" d: M( U' F8 k9 {! d3 y6 {9 O( O
IP型虚拟主机指每一虚拟主机对应唯一的IP。可通过多个物理网卡或虚拟网口实现多IP,Solaris2.5和Windows NT都支持这种方式。8 H- f% m1 M( s9 o6 o2 r

# ^) I( J, @' S  [% }0 |6 k两种配置多虚拟主机的方法:. V7 o3 l: X% {: E

, H) X2 S# w% _: e! t' d0 g1、为每一虚拟主机启动一个httpd进程。
) `+ h3 F: X$ x) m; e! c2 f
$ Q2 v. t. e& N  F  ~6 O下列情况下使用此方法:
. {$ |5 o! ]$ L; B  {2 r) m$ a) _
& c% @+ \. @& G5 Q, q? 需考虑安全隔离问题,如两个httpd运行于不同的User、Group、Listen、ServerRoot,两者用户除通过Web相互浏览数据,无法访问其他数据。1 a- a, c0 Q* M8 d' T# t
. K4 p3 i- j; E6 F5 g1 C; f
? 能提供足够内存和文件描述器。
3 m/ X5 I9 S+ X: d1 Q) |& ]& k2 O" G
设置方法:: v$ n$ w* H, F  Y' D5 ^

, v' j, l/ y; F0 s4 }3 ]为每一虚拟主机建立一个独立的httpd安装,在每一个安装路径的配置文件httpd.conf里,用Listen指令指定进程服务的IP,如:  _$ o4 |- m3 W

6 _8 W% j. Y$ eListen 10.68.37.10:80
! Y$ U% ^. D. D- b  O, O) N5 J0 U- c
2、为所有虚拟主机启动一个httpd进程。
9 P6 p( k* X6 Q0 ~% J3 s+ i% R
* t+ q7 [- t2 q  I! U4 t- d下列情况下使用此方法:
" m$ }: a1 H6 f) _4 |; U0 P+ F* j9 A/ u  F( E7 o
? 允许在虚拟主机间共享httpd配置。" p- z- T: t5 L: X3 y' N

+ B+ U: _% o$ Y/ ]? 计算机服务于大量的请求,运行多个进程使服务器性能降低成为重要考虑因素。0 S3 T3 D, w" C" |& Y1 }, W: F
) m+ Q( T1 V& V* v
设置方法:
+ O3 |8 u( Q6 `) a% M" k6 H1 m+ o9 F' `/ u! l, M  e' d
在配置文件httpd.conf里,用VirtualHost指令为每一虚拟主机设置ServerAdmin、ServerName、DocumentRoot、 ErrorLog、TransferLog或CustomLog,如:& c! _$ X( ?: t) H
0 m) ~4 c3 c! y+ Y& M
<VirtualHost www.smallco.com> #此处建议用IP$ p" d" T4 ~0 {% ^- r
ServerAdmin webmaster@mail.smallco.com
8 K" {' a; N: k3 c5 g( XDocumentRoot /usr/local/etc/httpd/htdocs/smallco* I; |4 q, ]3 ?& J. l0 B& ~1 X
ServerName www.smallco.com #建议此处用域名$ a% K$ k- @+ C" U3 ~1 d9 ], j7 S
ErrorLog /usr/local/etc/httpd/logs/smallco/error_log1 F3 V0 ]$ J" a5 q9 \4 J
TransferLog /usr/local/etc/httpd/logs/smallco/access_log; @& Y1 g8 m, k$ D4 C# V
</VirtualHost>
5 @$ W% w$ L+ w$ }
" E; r5 C6 w6 j& m$ c<VirtualHost www.baygroup.org> #此处建议用IP# K  |& y2 U& ]- C
ServerAdmin webmaster@mail.baygroup.org1 w5 Y$ J( {; E) g% z# c- w5 I% W
DocumentRoot /groups/baygroup/www6 F& |# a- B# b
ServerName www.baygroup.org #建议此处用域名2 q* {: Z& P# U1 _7 G6 u. T# D, [" E; N
ErrorLog /groups/baygroup/logs/error_log
0 B& J' z0 V( C  A2 n1 @TransferLog /groups/baygroup/logs/access_log4 D! [1 m6 e, ~) E+ I& y' @
</VirtualHost> & Z' L, j" l; |# q9 D" W5 e+ Q( f) m9 o
! c0 K7 w# }; R  i0 e
同时要做虚拟网口或网卡的配置,在DNS也要做相应设置。
7 T" d! _  j1 [3 y0 C# k. f
6 J1 N1 w! n2 g5 ?二 、名字型虚拟主机(Apache1.3以上版本支持)
; t, H. i- ~. H/ c  v2 z3 A7 U1 z: j, t' D1 L
  IP型虚拟主机虽好,但不是最佳方案。它要求每一虚拟主机有一专用IP,在某些机器上难于实现。
7 Y8 k; O" M$ {0 |' H# d" l3 `! j) }' d  F1 u  r; C
名字型虚拟主机是指每一虚拟主机的名字不相同,但IP一样。它的好处是不限制虚拟主机数量,配置、使用简单,不需另外的软硬件。缺点是客户端必须支持该部分协议,最近版本的浏览器都支持,某些老版本浏览器不支持。但Apache为此提供了解决方法。
& ~) s6 S/ N+ v  D! u6 R
$ A7 k4 M- T4 L4 {( j& w设置方法:
; k4 Y" q1 c+ B4 s- b8 N7 Q/ p8 l8 {# f/ M) S
在配置文件httpd.conf里,用NameVirtualHost指令设置虚拟主机,如:
4 I& f5 i4 f+ a4 R3 r
/ u& j5 A& l( |0 VNameVirtualHost 111.22.33.44
8 O% v7 v" f+ |) W
4 i+ f9 I0 H* \0 Q4 {( t" o* A<VirtualHost 111.22.33.44> #建议此处用IP+ u- |1 `$ y/ f# d: ?) |6 x
ServerName www.domain.tld #建议此处用域名
$ A% p3 h" ]/ N! M" B0 T  vDocumentRoot /web/domain
3 S& v9 A  s( \( V</VirtualHost>8 O1 i% @( h' B1 {( ?2 J; [
0 |0 R8 s, F; C2 v  Z: e6 }/ p* `& ]
同时,在DNS定义www.domain.tld指向111.22.33.44。+ i: v+ V) T2 ]# e, X3 p2 {
4 G9 B/ x7 t4 q/ m
注意:当在NameVirtualHost指令后使用IP时,任何使用IP的URL请求都是针对虚拟主机的,主服务器从不会响应一个使用IP的URL请求。* L0 d( r0 U$ l, m
/ k% ~( c* q# |; |/ ~
另外,有些服务器希望以多个名字被访问。例如,假设有某一IP的服务器,希望以名domain.tld、www2.domain.tld都能被访问,做法是在VirtualHost指令部分使用ServerAlias指令。如:5 Y. ^' S0 ]0 _, m0 Y

( `' N: f5 ]8 f& M- @+ \ServerAlias domain.tld *.domain.tld  V2 X" J7 A% G- `

. ]6 G, x' R% j另附一些虚拟主机的设置实例。
; [+ U& U2 @6 j' [
) p- x( \, d' A# O2 {   X3 t) o; i/ R! b: J5 X5 S

, z# p0 [; b  k, f) g, B, j9 |( z 
& D0 J  B) \8 |1 u! J; M1 e. O) A5 n# n' H) k* r! k
附:虚拟主机设置实例& f' ]5 V- I) V+ Y& |6 r7 E3 H1 g$ I

7 ?: L7 K* Z. _) P5 u3 Q1 e* aIP型的虚拟主机配置
: N' X8 G) j! R/ t, h% w1 A# i4 R6 {8 [: L$ L
Setup 1: 服务器有两个IP,+ O  Q, q; K- m0 k  J
  o- u; Y, |6 M% ^6 a
111.22.33.44 server.domain.tld
$ g$ D4 q$ f1 V) K
! L5 X" d+ ^( r9 ]111.22.33.55 www.otherdomain.tld
$ E: d5 {+ B9 r  s6 I6 V, y6 e2 \  w# m. m; u$ W/ y
www.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。
0 H9 X0 x% b0 u" `% t( K* w: F' S/ I: j+ m
服务器配置:$ n$ k, v; `, f3 s5 r

8 c4 F* T2 }2 K3 ~, [...# j3 L% E2 |& ^) A! m- {7 f4 p7 _4 Z* d
& T: f, `; l; G
Port 80; U4 p  R) J( p: }( |. ]# e
1 c$ Y; H, d- Y" D# [: Y
DocumentRoot /www/domain
5 K* U/ |4 s6 M  P! k1 n7 W8 T! G: JServerName www.domain.tld% i( y" o1 V" h( K
<VirtualHost 111.22.33.55>
  Y0 k  b0 p/ z8 M) X8 C& [DocumentRoot /www/otherdomain! y) E/ C% p. A5 l1 x" {; W1 D
ServerName www.otherdomain.tld
6 f8 T: f! n/ G( g9 S  K...
/ y1 Y2 q+ J) a# i) J$ u</VirtualHost>/ z3 U- n6 W8 w# [& R
! e3 t/ Y$ F, ^  k) b% g! A
Setup 2: 基本同Setup1,但不设置专门的主服务器。* K* F, l7 N1 t$ F
9 m9 ?' U% p" Y: m3 e
服务器配置:
( B  P5 E% {7 ^, k2 L! W  z/ T; i& w: g6 h+ c! i
...# {0 ?; r+ V6 M' f  Q7 p* k

! n  q. Z: U" j( Z& S4 r4 H$ \Port 80
- v. F; m1 Y% H7 l
5 g1 i- V- S' m: U; h( Q0 `ServerName server.domain.tld
+ |# D& k/ W+ j: Y- K<VirtualHost 111.22.33.44>
, Q/ A' Q! _2 r) UDocumentRoot /www/domain( H; z6 x8 r5 U" R8 o
ServerName www.domain.tld3 e& w# F# J4 i7 W3 m# k0 H
...: C# r# `4 ~$ Z" [$ A6 R: k; c& U% F
</VirtualHost>- S7 h$ g; y  f# L
1 Z) j( |5 G/ K
<VirtualHost 111.22.33.55>. s& m- B( S9 j  N  Z# ]( J! p' r1 M
DocumentRoot /www/otherdomain/ e6 ~& Y1 B& g) _$ y- F" t# ~' U
ServerName www.otherdomain.tld) }  |6 H3 d2 X6 B6 o8 {
...3 N$ t, _3 H2 V  b' b
</VirtualHost>
3 j) f# I# U' _1 u: X, a: o) ?! W0 b6 H
这种设置只有当URL为http://server.domain.tld时才击中主服务器
; P# @4 f$ Q! [1 a
, O& }& N6 v9 e* P8 ?; ^& q2 PSetup 3: 服务器有两个IP,4 |; l! @9 g6 w) j* u0 a- X
: f  A% `9 e: C# o( N; G7 a5 j9 S5 Q
111.22.33.44 server.domain.tld  p+ V/ i: l/ b+ `) N9 Y: D6 i
111.22.33.55 www-cache.domain.tld
( G# |7 g4 a3 ]2 K) nwww.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。
% F* T) E7 R& @0 Kwww-cache.domain.tld是proxy-cache,端口是8080,Web服务器使用默认的80。" x+ l  V2 z8 J  {6 {$ \' L
1 L+ q& X5 G) B1 c3 h
服务器配置: ( A1 L+ c5 V1 L+ ^) e4 \
- u5 w# r. F8 v9 J5 ^
...
7 C2 a& O- i1 E/ E: S" O9 b0 u! @! S1 m# m) y( s- G
Port 80
, m4 R) E8 [. j3 }0 B4 p
) {, N3 D' N+ @Listen 111.22.33.44:80
; N/ F: i5 }1 _/ }0 DListen 111.22.33.55:8080
# q6 e) w: P% c: |  k) e! a% C/ U- T0 A: A0 i* S
ServerName server.domain.tld
# S( u# t2 S. Z) M% M. [<VirtualHost 111.22.33.44:80>
: Q. D. I7 K, w2 d. v7 }/ bDocumentRoot /www/domain* |6 M3 D" Q+ q: X( J
ServerName www.domain.tld' o* }2 J2 A& c4 M
...8 c6 X# Z1 p2 x# e6 k7 l; v' R
</VirtualHost>5 h0 h. u1 \5 B9 C

# t  K$ @+ F8 t6 S' g<VirtualHost 111.22.33.55:8080>  i# ]# [* u6 i% E
ServerName www-cache.domain.tld
5 D/ G0 c# J6 M" e; e3 w, F: V...& s) B3 J, L3 h9 I
<Directory proxy:>5 l) I# |5 ^' u, u5 c
order deny,allow+ z& {$ n4 n6 g+ W
deny from all
- l% `" ?3 _( x+ Jallow from 111.22.33& u' o. C. y+ f* ?4 A  z5 E
</Directory>
; A- o9 A; n3 e6 Y! C5 K</VirtualHost>4 Y5 j8 F$ q2 `5 G; x

, B( ?2 b( W7 J* x& T/ D7 \ 4 D& z# Y/ ]. J9 {
/ p5 S3 ]. Y' s3 r1 s  D8 R' N" [
名字型虚拟主机配置
9 f0 E8 F1 V" y9 T/ `4 u  s$ C6 G8 P$ l3 N) a1 K- y. l4 |
Setup 1: 服务器有一个IP,2 e$ d) H- {& u1 k9 Y  J

7 u& w. \2 e' [; Y5 c. b111.22.33.44 server.domain.tld.
" G6 D* [6 f2 X0 i, y2 y$ k" H& |6 D" N; v7 [  v" v  q
www.domain.tld和www.sub.domain.tld是别名(CNAMEs) 。 3 R# f: C! y8 N- Z% [: X* W# C
) C  g9 n; }- s; `9 r) {# k3 r
服务器配置:
' c5 J3 N' ]  R. _* _. \
, s) P- d6 S* }8 I( \...
4 _+ ~% t: R5 ^( M9 [* L: \* \  H! y
5 Y+ k/ V4 g+ jPort 806 K* R7 B, {: [4 D

) |9 O; S1 i8 Y0 F& V2 V2 K3 pServerName server.domain.tld
, M9 ^: b' K: q2 GNameVirtualHost 111.22.33.44
1 j, x' N2 t% N7 G5 D7 F6 l- ]3 z) V5 |  X
<VirtualHost 111.22.33.44>) S; p( G; w7 H( b
DocumentRoot /www/domain
5 s9 _7 V0 J: R& _/ W& oServerName www.domain.tld/ z8 k$ }( `3 t  U
...8 W1 h  R9 k$ {; I
</VirtualHost>
; C5 g- L) q2 o* G0 V
0 V7 @' S5 R. Q, ?& Y: z3 n<VirtualHost 111.22.33.44>
9 E2 T0 ]4 W8 ODocumentRoot /www/subdomain
* b0 h; M4 X( M8 _: x* X4 ZServerName www.sub.domain.tld
( D0 ?% E% w' b; j8 Q! }...
9 z$ [- M7 K' C- p</VirtualHost> ' D  }' P7 A7 P  O: I7 _

8 |7 k! Q- u2 ~9 [若使用IP访问服务器,由于 www.domain.tld 有最高优先级,被认为是默认服务器或第一服务器。
7 x* g/ A! H! H/ J( j' b7 n" k, z7 N" e6 [  h7 m. {0 G5 a- a$ k, N0 {5 Z
Setup 2:服务器有两个IP,
# B9 ?1 I, L# X6 X
5 [3 X$ o6 r& @$ D111.22.33.44 server1.domain.tld 用于主服务器
2 H' s  g5 g5 E5 G7 A111.22.33.55 server2.domain.tld 用于虚拟主机
& E4 d6 N/ B7 `; O& O9 D别名www.domain.tld用于主服务器,* ]7 H: X, p; \, s/ G) p$ T
别名www.otherdomain.tld用于一个虚拟主机,
3 p8 Y# x) M, X/ R别名www.sub.domain.tld,*.sub.domain.tld 用于另一虚拟主机,/ ~+ R7 B8 l4 q7 H& [/ M9 L
/ @0 I, c1 W& `
服务器配置: / [7 y8 l2 f+ v1 o. g7 v

- |: e9 I+ Z6 E...
2 i3 t% C0 B6 m- F/ W$ E$ I4 Q" ^: E1 Q2 t& x8 Y; d
Port 80
' w/ q* i7 \0 w4 G
% K4 U* M0 g  ]3 d, s) QServerName www.domain.tld5 g$ S& l- W. i6 h# R, T" `! j
DocumentRoot /www/domain
- F1 `( i2 }# ]; }' x3 w" FNameVirtualHost 111.22.33.550 v+ y1 V- F0 u1 S- v
<VirtualHost 111.22.33.55>
, z5 h$ g4 F3 i( {DocumentRoot /www/otherdomain
" p( X! j3 M9 C) FServerName www.otherdomain.tld; m. Y( P& W% Q' T
...2 r, G% U& A; Y: h9 k
</VirtualHost>  L2 c% Z- f5 s3 X! D: E, ?
% L2 O' u- d  i+ h9 |8 Q) @
<VirtualHost 111.22.33.55># h$ d: W; o2 G, I% Q& a, E/ i$ A7 ?
DocumentRoot /www/subdomain
$ E# K7 @, @  hServerName www.sub.domain.tld8 [; f+ ]8 a) P  b
ServerAlias *.sub.domain.tld5 \0 z  j5 u$ T% z. }" F: l( ?5 ]
...
' q3 G% H8 R5 f$ Y$ D</VirtualHost>
2 {% L3 i( B; R9 J8 v& i2 X$ ^% g& M, |9 X% \. \/ b
混合型(IP/名字)虚拟主机配置
3 m; P8 ]# L$ p
& l5 x* u$ e1 a1 m5 pSetup:服务器有三个IP,
7 m( X4 ]. _; K* J: m, V1 X
; p+ v: @& W9 z+ j- _3 u' S4 j! b111.22.33.44 server.domain.tld 用于名字型虚拟主机6 e# k5 p7 b9 r# X
111.22.33.55 www.otherdomain1.tld 用于IP型虚拟主机
' _4 `7 X8 ?! v5 B7 ?# u111.22.33.66 www.otherdomain2.tld 用于IP型虚拟主机
/ w% _0 c' p6 x/ t  v1 |% T
) Z; ~: B3 K0 o7 a& R7 C5 N服务器配置:" a7 [1 ?, r& A
...* F1 t& l+ e8 d3 }6 b0 b7 W

' b1 ^' O  A4 [6 A8 qPort 80
/ u6 t/ ?1 J; U( d9 z! HServerName server.domain.tld- _  T6 F, z  I0 x$ X9 l2 Z

, N, O5 m; E0 I1 q+ T& KNameVirtualHost 111.22.33.44+ @2 R9 _) W9 V6 v
- a, I7 q/ i& L+ R$ x
<VirtualHost 111.22.33.44>  |0 B/ U; n% g0 f+ h$ N' W# l
DocumentRoot /www/domain2 Q0 S* {) Q6 f  s& M
ServerName www.domain.tld
" Q3 T9 g/ w- G( f/ {2 B6 {9 z3 |8 l...
( l0 C# N& J8 G5 B5 Y</VirtualHost>
5 \3 [5 b2 D$ L  k0 B9 O/ m) h0 r6 a" ?: a+ i
<VirtualHost 111.22.33.44>- m" `8 w  r; E8 |9 H$ Q
DocumentRoot /www/subdomain10 `$ f+ f* g, g, v7 z! r& g
ServerName www.sub1.domain.tld
+ D! P; g$ x! M3 f...
' K8 ~1 R- V! V; o/ Y2 J) K  u</VirtualHost>
( C  Z% C9 r4 g8 z$ y( I
- {% R" k8 i1 J3 x<VirtualHost 111.22.33.44># j; R7 _( @) @: H4 ]
DocumentRoot /www/subdomain2
; I- @5 N1 t/ V8 M1 {. n' DServerName www.sub2.domain.tld( m; @: V0 o2 V* I# c% D' x
...2 E% {- W( H0 k& y% c; E
</VirtualHost>
- w% H2 q6 k, e* A5 L( v; O3 y
<VirtualHost 111.22.33.55>* ]$ }/ I6 ?7 o% A# x% K
DocumentRoot /www/otherdomain18 a! o2 d' |) I9 B" s
ServerName www.otherdomain1.tld
$ n) w2 S% S8 |+ h...* \) W1 {' W- P( E: D
</VirtualHost>
( }  _: X* s8 k1 i7 q. u' ]. W$ N" ^
<VirtualHost 111.22.33.66>
' Q$ c0 _6 m$ S! c2 ADocumentRoot /www/otherdomain2
5 O; }/ _! \' c/ }9 OServerName www.otherdomain2.tld
1 p2 }7 [( X# O& h...
2 n$ D4 A# K. z, @; U$ a, J</VirtualHost> 0 Z9 q6 B8 V4 v3 L
1 {; Y% ]/ G! V' h! y, z2 z7 D9 f$ ~
端口型虚拟主机配置
9 r. D6 d/ M' Q! c9 u4 H
  L7 ~' `4 G, M6 N; y5 B, [Setup: 服务器有一个IP,9 P# k; Y$ ?4 `) h

; o( {/ ^. ?; Q" B0 S) N& S111.22.33.44 www.domain.tld
! E3 _% t6 a1 U! D' ^; C3 i( K+ |% g1 j5 v9 A+ z& C
不需要另外的别名或IP,采用端口型虚拟主机即可设置一个配置有别于主服务器的虚拟主机。
% Y$ X* @( n1 D- b$ k, f; _1 C0 |+ \. l  H
服务器配置: " E! [7 H# C; N+ o
...
2 ]) \+ k' @5 m+ q2 X5 T7 z
4 T8 ^: ~; O: c% b4 O; RListen 806 w4 d6 W7 j- n! y/ }5 s
Listen 80803 {1 v; c' a* ]( w

. U0 V8 V( G% j% I( KServerName www.domain.tld, i' b! \" k) U1 U$ L! i
DocumentRoot /www/domain
! U; w& n2 `- Q3 g7 k3 X+ h; O6 I- _; j
/ k5 Y- z7 S! _1 R<VirtualHost 111.22.33.44:8080>
; t- C+ j& k  KDocumentRoot /www/domain2
4 t% Q; {5 }" j$ n3 [8 H) ^...  V) @! D) o& s* M! ~3 C
</VirtualHost>' O# P0 j0 U/ i
7 ~/ \* s; X+ \
 ' Q2 W' y2 ^) l5 k* j- ~

- W, E* `5 ~% u4 E5 L来源:http://fengyu.china.com/Vhost.htm
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-19 12:13 , Processed in 0.015196 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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