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

使用Apache Server设置虚拟WEB

[复制链接]
发表于 2003-10-12 13:37:43 | 显示全部楼层 |阅读模式
unix 平台与NT平台使用apache server的设置相同。以下重点以unix平台为例8 r4 G: c, u* \# P! p
说明apache server的设置。另外值得注意的是,虚拟web的成功设置,有大约/ @6 ~9 z* {1 E: Q, Z' C% F1 m& O
50%的工作量是在域名的注册与解析方面。所以一般先注册好域名然后再做
0 r6 T2 B8 J3 f$ `5 ^. d. }虚拟WEB设置。
/ L: T* e2 {" ~6 C( [. f" g" z- y: [! F! S; h- n$ Z
一 、IP型虚拟主机
: u2 j/ D4 m0 C! T
+ o! |: v8 Z, n' c9 y# u! DIP型虚拟主机指每一虚拟主机对应唯一的IP。可通过多个物理网卡或虚拟网口实现多IP,Solaris2.5和Windows NT都支持这种方式。
4 I( {% p; l# I% f; ?: Q7 c& [  [9 ^, a" m/ e" l1 z
两种配置多虚拟主机的方法:
, ?  m* y1 x' H  Q& K( j5 g4 ~0 p$ f. A" g
1、为每一虚拟主机启动一个httpd进程。" R2 ]% |' N6 |% K! T

8 c2 x. N* i% `0 l" q下列情况下使用此方法:
% [) C4 D; P: J( y9 i. c
; P2 O: S% D  n/ B8 D? 需考虑安全隔离问题,如两个httpd运行于不同的User、Group、Listen、ServerRoot,两者用户除通过Web相互浏览数据,无法访问其他数据。! p! b' D  u' a; }

0 T" R4 z2 n3 c: l9 p2 y2 H/ N, ]& b? 能提供足够内存和文件描述器。3 |1 m5 K& j% r+ N7 R

1 E) U% r- X& _# z4 D设置方法:
2 ]) h2 e/ Q4 F; L) M0 D0 x& O
为每一虚拟主机建立一个独立的httpd安装,在每一个安装路径的配置文件httpd.conf里,用Listen指令指定进程服务的IP,如:
9 |) G) N; |& p2 J. A, m1 I2 x0 i6 j9 W7 D6 S! i( L
Listen 10.68.37.10:809 E% c/ B3 P& M
- t; {# ^6 f  L7 p  g! `
2、为所有虚拟主机启动一个httpd进程。
- ?* W: S$ ?+ o; ^. O6 V
1 U" m* e+ L' V+ S) B下列情况下使用此方法:
; m5 X! K9 j, l* p4 d6 H2 ]8 O  B: Y9 D, E* s* L7 @: C
? 允许在虚拟主机间共享httpd配置。
! b  A7 Y" W9 N7 R8 M9 M8 g. K& T& S& P5 N5 `
? 计算机服务于大量的请求,运行多个进程使服务器性能降低成为重要考虑因素。+ ^" `, g- Q& q0 F3 {3 t$ a: Q
# G! e* o- r$ r4 ?3 K
设置方法:
& |& q- u$ H. m" o7 r7 {/ Q; v
+ c- J& [' L: c" l在配置文件httpd.conf里,用VirtualHost指令为每一虚拟主机设置ServerAdmin、ServerName、DocumentRoot、 ErrorLog、TransferLog或CustomLog,如:2 P/ ?$ H: ?' Z6 K
" O0 I& v( n. w/ C! S# r- v
<VirtualHost www.smallco.com> #此处建议用IP
7 a0 W7 g6 }9 S6 n: f' q. }ServerAdmin webmaster@mail.smallco.com
+ C! x! m7 m7 r* iDocumentRoot /usr/local/etc/httpd/htdocs/smallco: y6 m* t( y$ L  O' y+ P
ServerName www.smallco.com #建议此处用域名& `2 m+ A) M; @! M0 ~3 `* [
ErrorLog /usr/local/etc/httpd/logs/smallco/error_log2 U! ]* N; y& }) m# S" K3 t
TransferLog /usr/local/etc/httpd/logs/smallco/access_log# Z* Q8 z8 J- ~% b
</VirtualHost>/ m. @8 S0 I; P+ b6 [& L, c

/ t% y) N* ^$ x. k<VirtualHost www.baygroup.org> #此处建议用IP
0 ?  s2 e- t4 r, Z0 s" G3 _+ gServerAdmin webmaster@mail.baygroup.org
* O# F- o1 x2 q% j+ l& m4 uDocumentRoot /groups/baygroup/www% a0 s3 k" ?* Q
ServerName www.baygroup.org #建议此处用域名) C) {0 D5 X2 w# y
ErrorLog /groups/baygroup/logs/error_log
3 j" i0 u' j( W. g0 p3 E  HTransferLog /groups/baygroup/logs/access_log
9 U; c% W; ?( U2 V4 v% J</VirtualHost>
8 F. r. \% r$ Q9 \3 e- l* |9 n( {+ o, ~# a
同时要做虚拟网口或网卡的配置,在DNS也要做相应设置。
" M5 f( A  J8 z% F; M5 c& N- Y3 E# i& D  A, o* b
二 、名字型虚拟主机(Apache1.3以上版本支持)
4 H7 z* s, l( o3 ^( L
' {4 z$ [6 c, x! o. n; r9 N  IP型虚拟主机虽好,但不是最佳方案。它要求每一虚拟主机有一专用IP,在某些机器上难于实现。/ X. q& S7 ?& Q/ k* }

9 u5 y- s- y% |5 C4 m2 X- Y名字型虚拟主机是指每一虚拟主机的名字不相同,但IP一样。它的好处是不限制虚拟主机数量,配置、使用简单,不需另外的软硬件。缺点是客户端必须支持该部分协议,最近版本的浏览器都支持,某些老版本浏览器不支持。但Apache为此提供了解决方法。
. d) M2 S, O5 c& t" ]1 A/ J. h- W! {; R
设置方法:# `! U2 H3 P& v. b8 c" h$ J+ [: }! b

) u- B7 O8 n- ]3 P在配置文件httpd.conf里,用NameVirtualHost指令设置虚拟主机,如:
4 @+ E6 w& \' s% m( x
1 p) t& d$ y$ V1 I% N: s5 dNameVirtualHost 111.22.33.445 a0 Q7 O$ C! R

6 N" L5 u: j' T4 a: i4 H% ^. D/ w<VirtualHost 111.22.33.44> #建议此处用IP7 |9 s! P! @9 b' j4 y
ServerName www.domain.tld #建议此处用域名6 i6 J8 R) u/ n7 A4 n: v, k  R
DocumentRoot /web/domain
/ u# s$ {8 i- y</VirtualHost>
, e: P7 O) `7 }% k( q1 l. |3 Y: m$ }  g  e, q. M$ C0 \
同时,在DNS定义www.domain.tld指向111.22.33.44。3 W- n- Y8 D/ [+ d
6 h! `0 ?  t# C9 `
注意:当在NameVirtualHost指令后使用IP时,任何使用IP的URL请求都是针对虚拟主机的,主服务器从不会响应一个使用IP的URL请求。
* B2 x, P* z2 o
/ y; X2 w, T" O/ `另外,有些服务器希望以多个名字被访问。例如,假设有某一IP的服务器,希望以名domain.tld、www2.domain.tld都能被访问,做法是在VirtualHost指令部分使用ServerAlias指令。如:
! S  C5 I. {: a! ?6 X' @4 Z- ~; V! q$ T' k% @9 ]- t' \# J9 u4 g# B
ServerAlias domain.tld *.domain.tld: m1 h# J# f' _% V

/ d0 m* t' H% O- {2 T. \& W另附一些虚拟主机的设置实例。 # T7 J1 J7 n4 M$ c2 L+ D; D7 j  f
# a, Y4 g5 N* i8 K* V% I1 Z
 
' d& P0 F5 Y( M
4 i* r, z5 }/ e+ c- h  z; C 
. h* {; y" L7 U* r( G; V" }
9 r; V) e# w' V( Y  F附:虚拟主机设置实例. l4 q) h! S) K: K. T& h

; b7 A, H* A* t# r4 a7 s1 F9 aIP型的虚拟主机配置4 R3 n1 k7 L/ t7 y6 n: Z! x# C+ Y
8 f0 i5 B/ }4 O* e
Setup 1: 服务器有两个IP,, R, U* V& n7 s

" S" Y  w! M. k) _3 A5 D111.22.33.44 server.domain.tld% D2 Y, H; u' w8 b* @

2 n, Z& U4 i8 ?* |. w8 f  Q+ G( p' \111.22.33.55 www.otherdomain.tld
* o( D6 v9 R; i7 O4 `1 u1 y7 _# N2 i8 a. c
www.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。, k7 a( K+ y. w( _0 x& z- i
3 P" {  f4 u+ g$ z
服务器配置:
1 |; B* u0 |1 Q  q2 G" p7 y- k- P3 J3 E( {- |  Z; s
...
$ s6 k* E3 C: [# k
5 l# e- x; x- _8 F  r  wPort 80$ M+ A6 Z4 ^  F) y/ Z% [) h
5 M  @0 [: X6 A
DocumentRoot /www/domain
* q9 l! I4 D7 K0 m, PServerName www.domain.tld; E! L. ]& y" {, \
<VirtualHost 111.22.33.55>' |, M( Z7 z: l" Y
DocumentRoot /www/otherdomain
* Y  G9 y9 V3 T2 S2 {0 q0 t- nServerName www.otherdomain.tld
& P  }3 D% f( e...* s$ }& G2 F( G
</VirtualHost>- P2 L' W) f+ R
/ `8 _1 H, t# v' D7 @- G1 ]; j
Setup 2: 基本同Setup1,但不设置专门的主服务器。
) n. ^/ p) E  f* z* v
" m8 A) E* E  v( o服务器配置:
- Z8 H) D) q- g% W3 L5 \; b; C$ b! S6 U2 }1 G& W
...
5 N$ I! a7 y# y$ Y! {- z8 Q% s6 S; F) \9 g8 y6 p% k3 `
Port 80
# i9 H) b5 z5 v) p5 R: Z8 {
8 y* Z+ g' R  @$ vServerName server.domain.tld
( w3 u0 Q+ v! d/ U* e<VirtualHost 111.22.33.44>3 R: w2 J1 F5 I7 F
DocumentRoot /www/domain0 F& g: D) _  N. b
ServerName www.domain.tld5 G; F3 N) o/ R# R
...
. k( M) k) S. _/ z: B</VirtualHost>
- B. @" i: ?. h) f% h; P, I0 k, {  X$ j
<VirtualHost 111.22.33.55>
% V( _. ?4 v- ]& C6 _. k! }- cDocumentRoot /www/otherdomain
! F8 ~- C8 d8 T8 J( Y# o9 m+ Z0 CServerName www.otherdomain.tld
2 Q! f8 |1 G: g/ B  a2 d...# O0 w/ L; _/ i8 g- {
</VirtualHost>1 V! q% I% l) v! a

# Z. f. N& L7 [1 z/ }- X6 n  Q; z这种设置只有当URL为http://server.domain.tld时才击中主服务器 . }. F4 D( [4 G9 v8 I/ y

6 H8 M, x, r1 `3 Q$ RSetup 3: 服务器有两个IP,0 F4 j: p2 ^% }/ `7 h: R0 N; w

7 V8 u6 A$ v; j2 A111.22.33.44 server.domain.tld
0 C$ x, ]5 \0 U& u0 r2 {# G/ ]; f& {111.22.33.55 www-cache.domain.tld
- A$ ]$ {7 `+ w. Y+ Z7 z# _0 Rwww.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。* F, w$ ]4 b& C& A6 L4 \
www-cache.domain.tld是proxy-cache,端口是8080,Web服务器使用默认的80。
; c7 X, g; c& n! j% D
% ^4 C; T* B- {& l服务器配置:
: _' \8 ~( k: j2 p- f: o9 L1 T7 C0 C1 X% r, p% C5 p
...' m$ A3 v% w. b' \3 i' H
+ m7 u) C0 R# q4 T. D$ g3 a
Port 802 C/ N6 p/ u* t1 o
0 U) S! N6 k: x# L3 _+ L
Listen 111.22.33.44:80$ A6 B7 m; Y. @* H3 S
Listen 111.22.33.55:8080: u# b1 h' n) C% X
9 `# O- G$ s$ Q) B
ServerName server.domain.tld
6 W3 @! U; z: B9 l# o6 |<VirtualHost 111.22.33.44:80>
$ j) S2 g; D, }" Q( }. ~DocumentRoot /www/domain
1 [! C- C+ o2 c- RServerName www.domain.tld
& H; U# K" h% s: Z..." ~1 t, q# p  M" c2 C( d, \% [5 |
</VirtualHost>9 b& l5 q$ Q8 s7 d) Z! k
5 k' F% V' M- \1 ], o1 t
<VirtualHost 111.22.33.55:8080>
. w3 R1 [, N$ \2 e0 L2 eServerName www-cache.domain.tld. O. n# d0 K/ o1 x! \3 l
...
5 s. R. ]0 q2 p; c/ P5 d4 M; W0 b<Directory proxy:>1 a: h2 `" z8 N8 Y# U+ Y# I7 f
order deny,allow3 y- E% g* r8 N/ R  F, ]
deny from all
8 B. v( G6 A1 ^- T8 A5 Z4 R5 rallow from 111.22.33+ K8 q! D1 [/ N  x5 N) h
</Directory>. a* O* E+ S* p) \% F3 x
</VirtualHost>
5 c  V. X0 P$ X/ \% H* o9 o" P& a$ a3 n
 0 M8 F( q$ w! Q. k( A1 r, I) ?* `/ s
7 y$ p2 U- g' @$ D  ~: k3 q. ^
名字型虚拟主机配置
) ^9 g9 Q' f. P# M
& H8 Q$ ?3 ]; B0 Y$ tSetup 1: 服务器有一个IP,9 w+ Y9 k3 A- R. ]

. g/ N4 O* U9 J6 b8 x111.22.33.44 server.domain.tld. # Q. K. R5 L3 z$ @0 [$ H0 w
6 h" r4 c. `7 E
www.domain.tld和www.sub.domain.tld是别名(CNAMEs) 。 " d0 {! I% ^% A: g, c3 e

% G2 ?8 n+ J; s6 m* g. C" n服务器配置:
9 {  w# F; d. N- m* j, [; ]* X; A! @
2 Q" q, r/ x& I( V/ o3 P& V...$ y" a5 m; _4 U- n' G, A0 L* r$ {! \5 t: X
% U5 t  a, K5 M+ }7 q! O2 e' c
Port 80
, J' ]4 ^" x# J  V0 n. j7 M: O4 J, b& G/ `/ p& R. z
ServerName server.domain.tld
& {+ ?. C  o6 J& L7 lNameVirtualHost 111.22.33.44 . C0 T* `4 X6 [1 i/ u5 J& Y

4 F" B) Q- j0 z$ X" z! n<VirtualHost 111.22.33.44>
: U7 _$ X& ~/ ]' v5 d. L) ~DocumentRoot /www/domain3 O0 u; N$ I0 Z% V" {, j
ServerName www.domain.tld- Q/ }  V7 Q, z" o! U) ^3 k4 u
.../ t1 g3 f2 b8 x" D9 E+ {  x  ~0 C
</VirtualHost>. B/ m& z$ \4 _( j9 ~6 g1 q6 x
3 z9 D0 W" c* M) l8 H4 F. u$ g: [
<VirtualHost 111.22.33.44>
% _% l+ N: i" F6 }. IDocumentRoot /www/subdomain
4 ]) m2 N8 b7 o6 {" E  O5 _5 r6 G/ HServerName www.sub.domain.tld
9 U+ \8 X6 E/ {! @( u' Y  b...7 E: a: W9 V/ h' W
</VirtualHost> . N1 T  Y  u2 P5 b/ s' A3 F

, t7 m7 c' r6 d$ s若使用IP访问服务器,由于 www.domain.tld 有最高优先级,被认为是默认服务器或第一服务器。& O3 f% h1 d# Z- N8 ?$ a

; |# N' k& P$ Y; O$ P4 cSetup 2:服务器有两个IP,0 p( v/ U: e% `1 r& {

( }% X5 l' O) D3 V# S- H111.22.33.44 server1.domain.tld 用于主服务器5 Z6 h- P5 g7 V
111.22.33.55 server2.domain.tld 用于虚拟主机
* v/ T. [. D5 R( [别名www.domain.tld用于主服务器,9 u& K& w% D  E/ B) P8 M
别名www.otherdomain.tld用于一个虚拟主机,
: p+ I- w) \8 X$ e: T1 a别名www.sub.domain.tld,*.sub.domain.tld 用于另一虚拟主机,( t1 r$ G4 ?0 w

, v& r! H( T8 f, j* {: L服务器配置:
; p; \. ~0 c6 d: r2 c& k4 G+ r  I# H# Z" }# p/ G4 B
...
; Y" g- k7 `3 i; z) T4 W6 Y7 N) F7 Z# p1 M  B0 r+ w
Port 806 `5 m* Y1 \; V6 U2 h& X- W
% j5 y, P; P1 e5 v
ServerName www.domain.tld+ x/ C7 g9 o) |/ f
DocumentRoot /www/domain
: N( U4 K+ G0 K( P5 F& v- {9 [! BNameVirtualHost 111.22.33.55
- d" i0 T# C) A5 s. \" E<VirtualHost 111.22.33.55>; i$ [+ S* w* K6 x$ y; Z# q
DocumentRoot /www/otherdomain3 u# q* M9 c+ R! _+ W9 z
ServerName www.otherdomain.tld
! G" _' j" x& r& `9 Q% }2 V  z...+ w1 L# Y! l. U! s. }! |
</VirtualHost>
2 n+ Y; P2 H1 F$ Z7 ?
; k! Z2 H4 i$ p7 |7 g  F<VirtualHost 111.22.33.55>
, `( L) V  z! eDocumentRoot /www/subdomain% o4 h. h: h5 n% p4 [
ServerName www.sub.domain.tld6 G& W8 ]$ k# N
ServerAlias *.sub.domain.tld( V5 W7 C, t: D/ {: X
...$ ~" l7 B! o- L
</VirtualHost>
/ E2 a- {) ]# _  ]8 w5 ]' S1 d! d. ?1 o, J3 E" w- m
混合型(IP/名字)虚拟主机配置
2 s+ }1 t# V+ x$ L& B: o
) K9 p4 `# O. f( P# @" r& F8 DSetup:服务器有三个IP,* j7 v3 B' @/ ?+ h

) Z; ~  U. I% Q' v( p111.22.33.44 server.domain.tld 用于名字型虚拟主机+ k; F6 h' V8 v4 E0 ]* o
111.22.33.55 www.otherdomain1.tld 用于IP型虚拟主机
+ w& s# N% q; l5 I111.22.33.66 www.otherdomain2.tld 用于IP型虚拟主机4 E  b  H9 I& C& s9 K" A+ ]' `; k1 e

# ]( z$ p+ l. {1 P4 Q5 g: y" e服务器配置:
% H% b1 I0 ]1 v$ [: a* a2 a& z...
0 R2 w5 O' ]0 u( ^0 K8 |, I4 |$ @1 I3 \
Port 80
8 |# A1 ^3 u* M  f) o3 ~ServerName server.domain.tld
6 b8 ~# c- S6 C, P5 p" ~7 L! h) `: k' `4 b/ n% s
NameVirtualHost 111.22.33.44
  F# _3 f7 i/ x& s4 [" `5 r& n( f- G  D
<VirtualHost 111.22.33.44>
% f4 e- c4 J: HDocumentRoot /www/domain
* S( T; L1 G+ @/ O" n; d4 f8 QServerName www.domain.tld* J9 N( M- O- a9 r3 T1 @
...
) ]. w8 ~; W. F7 P+ [$ m</VirtualHost>/ R. c7 L$ K( F4 m
3 B5 @. O0 T1 G  G! P) R
<VirtualHost 111.22.33.44>" h0 J# U, }, c4 }( Y/ a  w
DocumentRoot /www/subdomain1+ ^' s9 B) s2 T
ServerName www.sub1.domain.tld
5 a! t4 \! ]) i' E6 v  a...- I% \7 B+ y, S! [
</VirtualHost>
8 @: R2 t) f# P; N* k4 A2 |( N6 V* l0 \' U  ?( a3 s
<VirtualHost 111.22.33.44>
3 B. `& f8 a* ~2 P# aDocumentRoot /www/subdomain2
; m0 q4 k2 A5 q) yServerName www.sub2.domain.tld
  V/ k% D0 v, A2 r...
8 T) w& l9 d- x9 }  X+ |0 X" j5 z. Y</VirtualHost> + `* W4 j" J4 M8 _$ s$ T) D) e
/ q! V4 R# ?4 B6 w; u3 U
<VirtualHost 111.22.33.55>/ u' q+ k: _& h/ g
DocumentRoot /www/otherdomain16 P- X2 t' ?3 g3 p2 N% D2 J
ServerName www.otherdomain1.tld
- T+ W' L& d  X9 @...' j) `; F' _, ^) U  l0 U5 ]2 _
</VirtualHost> % S' `6 s( k2 h
# p. q9 f# n" ^& w1 [
<VirtualHost 111.22.33.66>" K6 d& y0 [) W, {9 x6 f" R
DocumentRoot /www/otherdomain2
2 d$ x8 c3 V: `  l1 AServerName www.otherdomain2.tld
& r  s+ g. i/ u4 O  q, M( b...
9 Y$ k- R, T* g( r- I</VirtualHost>
% k+ C  ]4 Q* _" t$ N8 X. ?: p9 a" |
端口型虚拟主机配置
1 _+ a0 O* n) h0 A2 A) ?  ?' t' E+ B0 E' x+ g5 U- Q1 `
Setup: 服务器有一个IP,1 O1 m  n8 }7 U+ ?: d: _' A# n; ?- h

, u2 @0 y+ S0 f6 I111.22.33.44 www.domain.tld
6 e6 H0 T3 K  z- {! n
3 j4 _+ m+ H1 c! J" ]* U1 c6 `不需要另外的别名或IP,采用端口型虚拟主机即可设置一个配置有别于主服务器的虚拟主机。 7 e: C0 @0 Q1 G( V& ~. `! q6 _9 f

) K# L% ~- e& O5 A1 P& i服务器配置:
5 \7 {$ |# R1 N8 ?...
1 J! K- ]) ?1 Q: P' m- V+ ]; g% a- j- q5 I. K, o* h
Listen 800 o4 m7 H- q0 S% S+ M% F
Listen 80808 B. P8 n1 n  A# Z% {- n
1 Z4 P4 W- ^1 k$ L# \, s
ServerName www.domain.tld! J8 @6 g1 d: ^& h* H, D8 U& @) \5 H
DocumentRoot /www/domain
: [5 ~6 K5 t7 y9 J: F5 _4 Y) I' L( {9 `( o
<VirtualHost 111.22.33.44:8080>
$ p& M" s& |0 \8 t% LDocumentRoot /www/domain2
& l8 Y7 h3 H$ J8 n5 w...3 A) d, @' W& _0 v" \4 {
</VirtualHost>
4 L$ P  {& p6 }) g( X# U
' U7 O6 D+ _1 U+ D% B# X3 u 
2 s- G+ Z2 Y1 a" A) m9 ?" e5 K* a! L9 a! u8 e
来源:http://fengyu.china.com/Vhost.htm
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-18 10:16 , Processed in 0.021143 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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