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

使用Apache Server设置虚拟WEB

[复制链接]
发表于 2003-10-12 13:37:43 | 显示全部楼层 |阅读模式
unix 平台与NT平台使用apache server的设置相同。以下重点以unix平台为例
# v. t) g: z6 k2 m, y+ ]说明apache server的设置。另外值得注意的是,虚拟web的成功设置,有大约
1 ~9 I- O2 S5 f' B5 u6 e5 l( r' U50%的工作量是在域名的注册与解析方面。所以一般先注册好域名然后再做
  y% u( Y. G  \3 @# N! c虚拟WEB设置。
: f+ i3 s8 @% S8 B4 E% W3 L/ }4 S4 e; E% z0 b9 F
一 、IP型虚拟主机
: ?! |8 i( d( i) _& p; \0 d, Z& F
IP型虚拟主机指每一虚拟主机对应唯一的IP。可通过多个物理网卡或虚拟网口实现多IP,Solaris2.5和Windows NT都支持这种方式。/ J( R3 g) Y; S

. [% e' N1 b& s; Z3 \0 |+ T( \两种配置多虚拟主机的方法:
" [5 Q: o7 H" i% ~& d! d9 ]+ Q$ J8 w* P$ h
1、为每一虚拟主机启动一个httpd进程。
5 a3 `) z# n( ]5 B) {+ I% d' ?( A1 X/ R1 ~' e
下列情况下使用此方法:4 z4 k$ C; x! _$ F4 m6 f2 {$ y* D

9 s: N2 c& b) V# w# _- `? 需考虑安全隔离问题,如两个httpd运行于不同的User、Group、Listen、ServerRoot,两者用户除通过Web相互浏览数据,无法访问其他数据。) f2 m1 q+ f) {
4 Q6 s+ T8 m  s+ ~4 {/ d
? 能提供足够内存和文件描述器。
3 n/ g  I) Q0 Q8 `: Z# ]) \  u4 _, a! z" {  d5 [
设置方法:0 k# n1 H1 w1 ^  G+ O

1 W. I3 q$ u! u1 W! t4 u4 Q  n. s" j: ?为每一虚拟主机建立一个独立的httpd安装,在每一个安装路径的配置文件httpd.conf里,用Listen指令指定进程服务的IP,如:6 E; f) R0 }  V+ x0 Q$ A( j9 z
/ W8 O' y+ o. t8 H
Listen 10.68.37.10:80
7 |- P0 |6 r: v5 _1 t  X7 u+ Q- R) `% ^+ u" \( v
2、为所有虚拟主机启动一个httpd进程。
# p& f, J8 M( a$ T- R
8 w6 O& W$ q0 u9 M/ t下列情况下使用此方法:
, Q. X8 x; y9 G+ m! ~
" |8 p$ L! u% x9 A? 允许在虚拟主机间共享httpd配置。
9 m) t/ `2 Y' x; D' q& X9 `! o. k8 d1 r4 ~- U. j/ u( d; _) r% ^
? 计算机服务于大量的请求,运行多个进程使服务器性能降低成为重要考虑因素。4 Z$ g# I  Z+ R4 t
( z% ?, C& v3 E0 t+ a* o
设置方法:8 M5 e( O) N+ M( ~5 U7 X

7 E" q: _! d; [6 J, f/ S9 G在配置文件httpd.conf里,用VirtualHost指令为每一虚拟主机设置ServerAdmin、ServerName、DocumentRoot、 ErrorLog、TransferLog或CustomLog,如:
: R/ Z+ ?2 m4 C/ N, M. J# D3 }
2 `0 p+ L8 L7 U2 K! @<VirtualHost www.smallco.com> #此处建议用IP$ e6 C, h* z8 `2 m
ServerAdmin webmaster@mail.smallco.com. X) _* P8 z; r% R
DocumentRoot /usr/local/etc/httpd/htdocs/smallco
: |, J5 z. L4 M; y; O  S( lServerName www.smallco.com #建议此处用域名- h) X) n- o' ~( V
ErrorLog /usr/local/etc/httpd/logs/smallco/error_log
  M0 d1 C  E9 {' S, WTransferLog /usr/local/etc/httpd/logs/smallco/access_log
7 s0 O4 J9 z4 }</VirtualHost>
3 ^0 [5 I$ L$ }( ]* ~- p2 c; r
  m( r. b% W+ \; x<VirtualHost www.baygroup.org> #此处建议用IP
) }; B, f- F( H& W* X6 t# qServerAdmin webmaster@mail.baygroup.org
( u# o% }+ N6 E$ MDocumentRoot /groups/baygroup/www% U3 k( v" m7 o/ f) `1 U: y# b
ServerName www.baygroup.org #建议此处用域名
$ E+ E( |: x; B6 n; i" QErrorLog /groups/baygroup/logs/error_log
! ]5 B2 M( W! u' R7 Z* oTransferLog /groups/baygroup/logs/access_log
  C8 n# T! Q( g! l, N/ |5 K& |</VirtualHost>
# @0 n0 p3 h2 Z9 Q4 B" o1 W' d5 F; V! ^
同时要做虚拟网口或网卡的配置,在DNS也要做相应设置。; a& s" o- C5 P* K

) y5 d4 m: w  E二 、名字型虚拟主机(Apache1.3以上版本支持)
1 F$ j  D/ Z: E  _; N2 d) E: j# s( t2 H( S
  IP型虚拟主机虽好,但不是最佳方案。它要求每一虚拟主机有一专用IP,在某些机器上难于实现。
5 ^- S  @9 L/ g- m6 @* `$ r1 J, Z
5 D# r& T  r8 I% ?, ~名字型虚拟主机是指每一虚拟主机的名字不相同,但IP一样。它的好处是不限制虚拟主机数量,配置、使用简单,不需另外的软硬件。缺点是客户端必须支持该部分协议,最近版本的浏览器都支持,某些老版本浏览器不支持。但Apache为此提供了解决方法。; G4 B" ^3 U- \! A

5 H  Z: ]% ]+ v5 P( u设置方法:
  [( A/ z* j# d& r- t/ V
3 Y# ^; g4 d% ~# x$ o在配置文件httpd.conf里,用NameVirtualHost指令设置虚拟主机,如:. h7 b* _8 \' ?4 ~6 u

; A8 ]/ @+ w& H8 [. ?2 |4 zNameVirtualHost 111.22.33.446 d: R. \! F5 h( h% q
7 \7 G- Z& I8 p/ ]# k' h+ m
<VirtualHost 111.22.33.44> #建议此处用IP/ e2 l$ Q9 U  j( f# {
ServerName www.domain.tld #建议此处用域名
: g+ y; o& Z1 c3 ~DocumentRoot /web/domain' A9 v2 e2 ?+ @, V7 d
</VirtualHost>
* g: \, A( n; W; ?- m) K4 O. j8 w" u9 J& ~* S$ g' H  ?6 `0 m8 }
同时,在DNS定义www.domain.tld指向111.22.33.44。, \2 d1 F3 l' n4 m+ R

/ v, |9 y6 |1 }8 {7 x- x注意:当在NameVirtualHost指令后使用IP时,任何使用IP的URL请求都是针对虚拟主机的,主服务器从不会响应一个使用IP的URL请求。
$ a7 L  v% b% @" u  q6 |
0 Y, C4 Z& K- n; V: R另外,有些服务器希望以多个名字被访问。例如,假设有某一IP的服务器,希望以名domain.tld、www2.domain.tld都能被访问,做法是在VirtualHost指令部分使用ServerAlias指令。如:. @( z$ I5 g5 r% h6 H

4 ]* E' t" t* z& u, q' qServerAlias domain.tld *.domain.tld3 ?  I2 U; L! ?- P$ `

! w! T" H5 a+ n! d7 N! v6 J9 k9 X" U另附一些虚拟主机的设置实例。
0 `# W% f$ X/ I/ `- g% i- o0 r8 o; ~! k
 
1 F+ r: u7 b9 ?" b& Y& k7 ~' p  s( |7 X( H/ O
 / O4 c  _0 e# U% V7 V* L/ Q( e

4 q% @$ Q- b  n" j% [% N附:虚拟主机设置实例
, b, b* M1 Y& S
5 J6 ?. p( |6 l7 ?0 M3 }; [7 uIP型的虚拟主机配置9 J8 T; d# l5 f0 @  X, A
7 x. x1 T+ j4 j% e  h" g
Setup 1: 服务器有两个IP,6 D- l0 c( }2 b4 B& f
) P% ^4 {# N9 ~/ D/ K0 I2 h
111.22.33.44 server.domain.tld3 Z& L0 y4 V% d

+ A5 n+ ?: \& h3 C: j" y- E111.22.33.55 www.otherdomain.tld% ^$ z1 D! ?8 {7 o0 f" R. |
) _( Y% b) h# q6 J# A, \
www.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。
5 l% V: N1 `" t. z+ Z% s# ]. X; C# I7 m
服务器配置:
# S6 Q( n' q; r2 t9 C! h6 }+ t3 d" t; N% Y2 Z+ h  [5 E5 q. O* z- Q
...
% @  r" v# r" C& y2 G2 F( m( n$ v$ [# j9 W
Port 80' \" x7 P1 {& D' Z  q5 f
% Z* E! w" D- b) M- j  V6 g
DocumentRoot /www/domain* [9 D8 ]' V% z* s/ u
ServerName www.domain.tld
2 r$ t, n1 _2 t' W4 `% B9 ?. h<VirtualHost 111.22.33.55>
$ h0 W/ g$ D4 T: Z5 mDocumentRoot /www/otherdomain
( v. x7 @# \9 X  m# h8 qServerName www.otherdomain.tld
  G/ W$ C3 Q7 m4 ^.../ f6 ~1 j9 q" I4 L$ O
</VirtualHost>
" \( O" q4 W7 M" w5 j
5 I) T" v/ c3 x( S( x8 j) @Setup 2: 基本同Setup1,但不设置专门的主服务器。
$ Q# y# b* J, g2 h5 ]0 i7 h
% B& `* E8 C& Y- |服务器配置:6 U8 v/ @3 i- j" [# p

; [. O. g) q/ S3 R. b...* d7 ]7 X0 V7 V- Y4 u" L3 g

, `% K+ c3 B# K" k7 hPort 80) |5 j4 H2 X4 ?* o
( E  d5 u2 o1 f# J) n8 {
ServerName server.domain.tld
% R3 Y- c, x5 \; c+ w* j1 s6 `. a<VirtualHost 111.22.33.44>
: W2 i+ B2 D  O/ J: T' t  k+ v8 mDocumentRoot /www/domain
9 F! ~* L' M) [0 N) N. o9 t% r4 }; s) [ServerName www.domain.tld  ^% a4 b. V! v- Q; f
...6 H9 q0 d' C3 l3 T+ d. q
</VirtualHost>; Q9 A( b+ D' P( K, H

( P% G! J. w" B5 M' Q% I<VirtualHost 111.22.33.55>$ g1 D3 A, N% B# r# N% K" S: K) A7 E* j
DocumentRoot /www/otherdomain: U5 L0 }. k# w" H
ServerName www.otherdomain.tld
- i/ G  {( _  M...
! ?. v7 F7 }6 S& ~</VirtualHost>
  l4 v# U5 y, K! S( ~% Y; y; K7 E5 d' s
这种设置只有当URL为http://server.domain.tld时才击中主服务器
" H$ \. J5 |& P: f! z$ a0 U+ i& h; v& N& [
Setup 3: 服务器有两个IP,
; d9 M- [" u! e4 R' [+ ^
2 O: z, k6 L6 `& m111.22.33.44 server.domain.tld
# A; I* ~0 x  L2 w111.22.33.55 www-cache.domain.tld
* @# e: ?0 K8 B: qwww.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。, K, j$ f3 h6 b+ B# t  a1 L
www-cache.domain.tld是proxy-cache,端口是8080,Web服务器使用默认的80。1 p/ n6 {' P3 }0 f5 A/ F3 K" \

+ F# Q$ a6 v0 b3 V服务器配置: & o/ m  G! `* O7 L* W

- ~5 W- T7 U& J...
& o; W# n( r; D' k& U* [8 B+ C  ~( W, z
Port 80
" h2 W* p3 v' o/ o! ~6 s  ^4 B5 W' ^; R
+ b% I+ V/ R: _- X, ^, U0 x8 h/ TListen 111.22.33.44:80
  }7 m2 y! E# _Listen 111.22.33.55:8080
/ v' u  K( G2 i1 a/ w( X9 A( r# h1 |# E) y2 {6 W1 m
ServerName server.domain.tld
- ?' h$ T0 `. Z# W% L- w2 W<VirtualHost 111.22.33.44:80>* F3 H  H( I+ I1 F
DocumentRoot /www/domain3 U6 c+ d" O+ X* U' F
ServerName www.domain.tld8 j5 T& [. I5 Y7 X5 e
...
5 T; q: I  k4 S% K# V' k</VirtualHost>
9 c4 E3 i3 @# z( p% Y+ r- D
. E6 L. e; {2 Z<VirtualHost 111.22.33.55:8080>6 |) e/ H/ x* M1 X0 C; P' ]' Z
ServerName www-cache.domain.tld- Z3 h! ~6 r2 ^8 n# W. n
...
3 s2 `1 h0 l$ L1 a+ j' o  q* y" Q<Directory proxy:>
1 k& w) T$ P. P# u7 `0 w" t' l0 I) Yorder deny,allow
+ ~7 l" Y5 O, ~/ [deny from all
1 ?' u. Y; h# wallow from 111.22.33
; j$ t- g% C, |" ?, W# `</Directory>
& j& C; |( d& n: M</VirtualHost>7 g2 m6 `8 V! C; `0 m! s) Q

1 q% t1 _% o' o0 C7 L% ^ / d. q$ O3 c% T
9 B4 V) V$ h. t% M" Q5 s8 r
名字型虚拟主机配置7 L, P" z% k$ {+ P+ j$ u
1 t4 J1 l+ q  t
Setup 1: 服务器有一个IP,
. w: C3 `: _0 t2 m* z* c& l; R" N1 b5 c! v
111.22.33.44 server.domain.tld. & o; O( Q* H7 w9 b5 c

5 W' C7 E. ^* Fwww.domain.tld和www.sub.domain.tld是别名(CNAMEs) 。
. L1 R3 O  m8 N2 P9 x
7 H8 u% Y+ J" A. C! l服务器配置: * R5 Z1 E4 N( H- J- z/ k% I% h
" \" R' g+ t1 g" v+ Y( l
...
$ T# U' [1 t$ \0 R( L5 y4 N& ?
! q8 J- R: ~. P$ @( OPort 80
1 c' j1 T3 E2 h( b' v: n; g) |
( `8 I7 H1 B' C8 V) K: z+ C% HServerName server.domain.tld
. F/ {) ?, v9 P/ [0 ~NameVirtualHost 111.22.33.44 & a" R& @1 J3 v# B) r" j. F0 o" p' U

) a; [+ ]6 ^6 @* D' _$ Z$ x<VirtualHost 111.22.33.44>- M* P) s" l- H; G. _' D0 C3 c
DocumentRoot /www/domain! s: s1 M0 f5 R; z
ServerName www.domain.tld
- w0 O5 U( d' L% l8 T...1 x' _! F; A% \& F7 h3 P/ J
</VirtualHost>
" r$ F4 A! T* ]/ `1 n- v: n- ^* S
<VirtualHost 111.22.33.44>
7 X) ~: i3 M+ Y" G' |DocumentRoot /www/subdomain2 f9 \( E0 K" X- }
ServerName www.sub.domain.tld- a( t) n9 B+ }8 I9 p7 P4 O" _. \
...0 n4 e/ ?2 A& }1 ^! x, h+ ~
</VirtualHost>
5 t1 e5 ^. J. T7 ~, ]* e, i! W% l: u4 ]1 Y
若使用IP访问服务器,由于 www.domain.tld 有最高优先级,被认为是默认服务器或第一服务器。
0 _0 R' r3 [! t% \( l
; X2 s/ G0 Y& s7 pSetup 2:服务器有两个IP,
+ ^, E4 p" H7 F( B& x
) n  _, ]' L: S111.22.33.44 server1.domain.tld 用于主服务器
/ y" }* |3 b9 V* K: S111.22.33.55 server2.domain.tld 用于虚拟主机
2 b1 g1 H$ m3 P9 J7 `$ s3 i别名www.domain.tld用于主服务器,
7 X5 ]4 B2 P! P8 j, C别名www.otherdomain.tld用于一个虚拟主机,
$ r6 I1 K/ O. Z8 u别名www.sub.domain.tld,*.sub.domain.tld 用于另一虚拟主机,
3 t* P" z5 A. _1 q! E. x$ P4 x; A! R9 m
服务器配置:
: f6 G% ]4 C' o/ Y0 }- s3 e5 C0 w& J9 }
...
' g/ X- n# \( E: M
& j/ z$ v8 z. j" b: VPort 808 e7 |3 w8 M7 u3 i7 K. x

0 P" D/ Q1 w! _" U9 s# J) q' ~( CServerName www.domain.tld) n! s' u9 V9 i- ~" }, ~9 P% }! s3 B
DocumentRoot /www/domain
# ]" q' S: [/ x3 c# V% _8 ENameVirtualHost 111.22.33.55: @* n) R. ]5 E2 p, p9 u
<VirtualHost 111.22.33.55>2 i& n' }% ]1 B8 X  y+ c% p; g
DocumentRoot /www/otherdomain
+ O% I$ j' L2 E0 {# P. M; t# lServerName www.otherdomain.tld
7 c6 U9 a* A" R$ p...: V& O" f' D% C7 B. X6 Q4 [7 ?
</VirtualHost>
! H1 ]8 W  B; B3 w8 I* r" z% @# j5 K' |) A% P+ U6 `
<VirtualHost 111.22.33.55>
+ ~4 a, a) a% C1 SDocumentRoot /www/subdomain: E4 B" a! q3 d9 i* b
ServerName www.sub.domain.tld
; a. w" `2 L  R, ?% g; _" YServerAlias *.sub.domain.tld1 P" O% `/ E" U5 \2 k
...; w4 `: j& y+ W9 Y
</VirtualHost>
" c7 W7 [- F% k2 e' r6 d7 o4 H, p. e5 |' x$ h8 v& s( i5 q
混合型(IP/名字)虚拟主机配置
1 y8 M" L* p7 L. r. m  T; u3 O# v. Z, ^& Y' D9 a1 O2 V9 H- ?5 c  e
Setup:服务器有三个IP,* H( I  m- R8 Z

& D; ~" O: w" f7 g! i111.22.33.44 server.domain.tld 用于名字型虚拟主机
2 Y: m$ ]! K# B* ~3 v1 K111.22.33.55 www.otherdomain1.tld 用于IP型虚拟主机0 j% Z5 E+ z# ?" e
111.22.33.66 www.otherdomain2.tld 用于IP型虚拟主机
7 z( X! c/ V5 K; y$ j! S. X
3 q! H0 J* l/ e0 C+ ?1 m服务器配置:6 I% j0 G! o/ G: ^; Z- j' m' ?( U
...4 [2 w% Q! w. C. i7 w- z4 _
8 F0 N* h& P) x$ s' W
Port 80
& {& G+ Y( v: l& r" q7 e6 L7 v! `7 ?. FServerName server.domain.tld6 ?. W( C7 [( `7 e. K/ ^

0 ]4 z! ~% O6 cNameVirtualHost 111.22.33.44; f; ^( b* y6 a  |0 J, ~6 h7 Z
7 s7 F! {4 t% t' T# O6 {. ~
<VirtualHost 111.22.33.44>" l( a4 p9 p) C; n
DocumentRoot /www/domain
% g7 U% J# d. [& UServerName www.domain.tld
, ?" v- m! F1 X7 v- h. v...& O% Q9 K( r1 U& d
</VirtualHost>
% H, l  y0 x( i" x( w) ^
  e* O0 G9 F1 u<VirtualHost 111.22.33.44>
3 z- B' k$ p- fDocumentRoot /www/subdomain11 y* W/ x3 }! n' w! s
ServerName www.sub1.domain.tld$ u$ ^9 g* g7 X# K
...
4 S; R2 M; m+ E9 ^9 N</VirtualHost> * t4 F1 C4 B- t: A, f- t5 T
  q1 E1 i" v5 d8 F
<VirtualHost 111.22.33.44>
6 y2 x* g; o" m4 f+ A& n/ e" a! yDocumentRoot /www/subdomain2/ j! ^8 S1 F& ~& ^
ServerName www.sub2.domain.tld
4 m' R' F* a" `...7 n4 C: |2 @$ Q7 h- b, u8 _% G
</VirtualHost> + B  B! R) [0 `; M$ S: _& b

( d2 s4 F3 k* D- p2 x5 n9 h<VirtualHost 111.22.33.55>
) L6 C* D% y( y# `4 UDocumentRoot /www/otherdomain1
$ c- H+ W( o2 |# G8 {  mServerName www.otherdomain1.tld! I' ~$ y# D6 s5 ?- @) R1 a8 b
...
) g7 c) q3 b* d% e  A6 b" i</VirtualHost> 7 e" `9 Q, P. U* w; d

8 v( s+ j$ T* \- n& F) u<VirtualHost 111.22.33.66>
/ V; [. E  m7 W/ e8 Z# f/ {4 u- cDocumentRoot /www/otherdomain2
0 C( s' k; _0 D4 vServerName www.otherdomain2.tld
! L/ a5 W7 s( z: Q...
, d% |7 X4 O( Z7 z+ Y7 e/ o</VirtualHost> % {8 ?  c6 u/ g) G
  P! X, u) Y! V/ l
端口型虚拟主机配置8 h7 K, U$ f- w/ F
7 ^8 ?$ [( s" F
Setup: 服务器有一个IP,3 x5 P) z5 G+ [5 T! V
3 {) j' A- H: R
111.22.33.44 www.domain.tld
7 R* a* ]8 J5 B& A( ?
& y- `6 E5 m4 b  T, [% u不需要另外的别名或IP,采用端口型虚拟主机即可设置一个配置有别于主服务器的虚拟主机。
$ L, Q. L" k1 ~
. w( v3 f. [5 _: D服务器配置:
0 z  ~1 g5 r$ N2 k+ U" Q6 f...4 s1 I: a' ?; N2 r9 u; }( i
7 s; x* z6 `* G; V* S6 J& Y+ f: Y
Listen 80' f5 c' O* c8 Q) T
Listen 8080" I5 j) N% q& z+ C# a! z

* B  w. C8 q$ u, y% i7 ^. `ServerName www.domain.tld) e% L( N9 h2 ~- J8 ~
DocumentRoot /www/domain
: B& t& ^  A- P) o$ X' a1 n3 S0 O. X7 p; C( j6 `. N" b: c
<VirtualHost 111.22.33.44:8080>
5 d5 t0 a- y9 h+ w6 c: uDocumentRoot /www/domain2
5 L" _% F" J2 O; G2 R5 J( L! d' d...
8 s, Q* X' H- o4 n  r& i+ X</VirtualHost>
0 k2 N* o- C9 O- z# j7 o! L$ H- e: S2 \1 ^) I% i
 . ?1 D' r% j% x+ R

- v- q4 W2 _" ^  a! y# Y& q8 T来源:http://fengyu.china.com/Vhost.htm
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-18 11:06 , Processed in 0.018849 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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