找回密码
 注册
查看: 4461|回复: 0

使用Apache Server设置虚拟WEB

[复制链接]
发表于 2003-10-12 13:37:43 | 显示全部楼层 |阅读模式
unix 平台与NT平台使用apache server的设置相同。以下重点以unix平台为例
1 i0 i7 D3 r0 m; f, P9 S说明apache server的设置。另外值得注意的是,虚拟web的成功设置,有大约
& q, ~$ H. Q& h& d: D50%的工作量是在域名的注册与解析方面。所以一般先注册好域名然后再做- P  f5 F; o. t  @& s5 x
虚拟WEB设置。$ e% k6 R# R0 u3 n0 `/ v) R( V
9 o: r  \2 i1 L+ n+ _
一 、IP型虚拟主机7 e+ i. x7 K3 F$ Y
7 u4 x: d, C; A$ A7 i' o
IP型虚拟主机指每一虚拟主机对应唯一的IP。可通过多个物理网卡或虚拟网口实现多IP,Solaris2.5和Windows NT都支持这种方式。- s; m% O4 Z- T) d( Y7 j' Y- _
/ \. n4 y! q2 _  Z; s' m, s
两种配置多虚拟主机的方法:
2 N4 Q. K+ |) T  A5 f7 O0 H& o
+ X$ I0 ?# f: i1、为每一虚拟主机启动一个httpd进程。
! o8 i0 N' U# A+ S3 q
" E0 n6 w% E9 R/ x  _5 g下列情况下使用此方法:+ }6 e6 t8 w# Q: `& O6 N# p
" J5 \: ^. J% N% O
? 需考虑安全隔离问题,如两个httpd运行于不同的User、Group、Listen、ServerRoot,两者用户除通过Web相互浏览数据,无法访问其他数据。! P+ j4 v) F+ T% \8 [
8 U" ?! @1 |" M' z
? 能提供足够内存和文件描述器。* t7 ~4 e; Z" Y) r& O

9 e1 J1 U) H& a设置方法:
1 k" V% V. T. D2 I: G9 F
& d4 \" E- g' `6 ~/ U2 ^为每一虚拟主机建立一个独立的httpd安装,在每一个安装路径的配置文件httpd.conf里,用Listen指令指定进程服务的IP,如:, A# r6 g1 [9 v; v% x

4 a2 L1 E0 I  ~! W# ]2 f$ W& AListen 10.68.37.10:80' j" G( I/ r& w# O1 J
% j' x* u8 b: X+ m% t
2、为所有虚拟主机启动一个httpd进程。
6 h& A: X/ \  l% o0 ~) W1 I3 I$ q+ u6 M& x
下列情况下使用此方法:
9 D4 q* f+ Y9 h4 @
( B$ @  I  i) {9 Z; S; N? 允许在虚拟主机间共享httpd配置。2 A  g/ u& u1 ]0 Y' j7 S
! a* f/ h+ C8 A8 S% Z
? 计算机服务于大量的请求,运行多个进程使服务器性能降低成为重要考虑因素。) Z0 P2 B9 _, M0 C( `6 g2 |

/ I+ o5 M' w2 z设置方法:
- Q0 V6 N: T+ `! ^' j5 K. p$ Q6 C0 P8 v& {
在配置文件httpd.conf里,用VirtualHost指令为每一虚拟主机设置ServerAdmin、ServerName、DocumentRoot、 ErrorLog、TransferLog或CustomLog,如:! r3 h& p& K1 T$ i" W2 W

! m' W2 ]4 U0 L% l! T0 }<VirtualHost www.smallco.com> #此处建议用IP0 d! f5 ~) `+ p* m
ServerAdmin webmaster@mail.smallco.com4 d1 v9 K/ _: O$ `6 V
DocumentRoot /usr/local/etc/httpd/htdocs/smallco) A9 V  G" M( O  k- T
ServerName www.smallco.com #建议此处用域名
) v6 H) `  W! H, y' uErrorLog /usr/local/etc/httpd/logs/smallco/error_log
2 g! P& H  |0 _7 Y) yTransferLog /usr/local/etc/httpd/logs/smallco/access_log2 |6 Y( w* [2 ~; _3 r- `
</VirtualHost>9 e1 G/ x$ v+ h# H# _

; X/ x2 W: ?% ^9 V1 k2 {; p<VirtualHost www.baygroup.org> #此处建议用IP
8 O2 B; R8 F3 N0 k4 o! m) tServerAdmin webmaster@mail.baygroup.org3 G% J# ~: _, ~1 Z+ I+ q* \8 W
DocumentRoot /groups/baygroup/www
' m4 m$ e2 o* D+ EServerName www.baygroup.org #建议此处用域名
' d+ x1 A; n* m, \4 `; pErrorLog /groups/baygroup/logs/error_log
7 B+ u* Y# P1 qTransferLog /groups/baygroup/logs/access_log
6 H$ v, p6 g& m) i) x" Q* _5 w( [- v% Z: V</VirtualHost>
' ]# x, j; ~/ H' ?$ G" H: g
* L* l- z/ Q( x. d5 k+ X. Z/ V同时要做虚拟网口或网卡的配置,在DNS也要做相应设置。6 m. }: S2 B+ E0 v" E  k5 Z! ^0 W

9 l4 B5 L5 P4 ?" Q二 、名字型虚拟主机(Apache1.3以上版本支持)
- B) p7 a3 P6 p$ c7 N& u) ~# a' A/ ]1 r
  IP型虚拟主机虽好,但不是最佳方案。它要求每一虚拟主机有一专用IP,在某些机器上难于实现。
4 \1 O! ]- ?* ]+ t; L/ k& T( i
7 K) b0 @% |( n8 M2 C名字型虚拟主机是指每一虚拟主机的名字不相同,但IP一样。它的好处是不限制虚拟主机数量,配置、使用简单,不需另外的软硬件。缺点是客户端必须支持该部分协议,最近版本的浏览器都支持,某些老版本浏览器不支持。但Apache为此提供了解决方法。$ k# a  S) o% Z, x! W
0 S) m, @. N/ n2 a
设置方法:
, j" f2 K/ I; H0 q
& d# l) B# e4 F" Z) Z7 n$ i在配置文件httpd.conf里,用NameVirtualHost指令设置虚拟主机,如:
. A1 P$ K7 z1 H1 V& T, ^- e  k; y/ {- v
NameVirtualHost 111.22.33.44# A2 R; \  J8 P

( Z6 d7 r$ s; S% ]& u1 C<VirtualHost 111.22.33.44> #建议此处用IP  p$ X2 C4 B- y% I( g, W
ServerName www.domain.tld #建议此处用域名
4 O  ~! w* k- \9 `7 v$ f% bDocumentRoot /web/domain) K. m4 }' `& [, z
</VirtualHost>
' }5 P8 h' E) ]- {& u! h$ Q* [/ P* P1 ]$ S1 ~) z4 z  Y
同时,在DNS定义www.domain.tld指向111.22.33.44。# f* t9 T5 u; w- ?

3 a/ H0 s6 C9 g4 j- D注意:当在NameVirtualHost指令后使用IP时,任何使用IP的URL请求都是针对虚拟主机的,主服务器从不会响应一个使用IP的URL请求。  ]9 K; t' L: `2 u6 p$ ]
7 ~7 F! P9 I# d
另外,有些服务器希望以多个名字被访问。例如,假设有某一IP的服务器,希望以名domain.tld、www2.domain.tld都能被访问,做法是在VirtualHost指令部分使用ServerAlias指令。如:
' K: m; T% s/ Q) @& x3 b* e, n# B' |. l( d' {2 [! n" t: z2 ~2 }- c# J) S
ServerAlias domain.tld *.domain.tld
/ H, v7 B4 w$ `
/ ^# x' ^3 H8 M5 L; x) {4 v4 y另附一些虚拟主机的设置实例。 ; J& B, S* C0 Y

$ t. c. m/ [( A) G# R, g/ a 
2 T! W9 }. ?, e' c7 H# f/ v5 b9 a" P7 U4 F; N( Q% Q
   X, R7 Q" D! }3 H( P
2 A. Z/ C0 [' z2 n  J. Q7 s7 v, M! [
附:虚拟主机设置实例) F# t9 T& b; d

( F  z! H9 ?0 z5 D) ?IP型的虚拟主机配置5 Z+ q4 S. e8 h, N7 g2 _. x
. S: D+ Y# ?8 j# o$ ]2 e
Setup 1: 服务器有两个IP,
6 ]4 y- j) D  C1 L6 w# l6 l3 G- p2 ~& h9 p0 l
111.22.33.44 server.domain.tld
8 z* ^2 h. ?. M% J- z  C% ~9 g' y& a# W. I% |! {
111.22.33.55 www.otherdomain.tld  [8 H1 ]5 u5 t- m) a+ l
1 O+ G8 d5 e9 I
www.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。
9 A- s) g3 A* {
/ o: l3 h6 P# E/ r: F  J服务器配置:
5 K$ U- y0 Y6 Q) E, J4 r4 ]* T9 P
& K) B9 P  }# E$ i4 v* G...
1 h0 m  p' Q( t! t. s2 v. D# M  R7 P- Y8 C+ O/ d% G  w, ?* H
Port 80! C. v1 y! Q# t  ~. l
+ |* ^$ a9 v6 ?! s
DocumentRoot /www/domain) K9 b+ b/ T& ^7 l; [! L
ServerName www.domain.tld
  a6 d& E' K6 Q+ c% ?! s$ g<VirtualHost 111.22.33.55>
% z- S- O) z0 j' ?) r1 tDocumentRoot /www/otherdomain% \( D) g2 q: b- F% V- ?, f) N) r
ServerName www.otherdomain.tld; R0 n2 P4 Z" b; R
...  V) @0 ?5 v1 H$ s9 v
</VirtualHost>% f3 c8 S0 X9 s& m" T  U) U* D

! d- [- F/ U; FSetup 2: 基本同Setup1,但不设置专门的主服务器。% J) t/ I, n! v! c1 H/ I
; n6 n7 h0 o9 X$ {6 Y8 S
服务器配置:# }$ M8 b: H  O

! U7 k. P! Y$ E: p$ [* L6 x2 z& Q...$ f3 p& |, `% a' Q" ?

) r) V8 V+ ?( a. R- KPort 80
6 {$ ~) _4 V. a" O/ w
$ E8 O0 J7 x1 x3 s6 e2 hServerName server.domain.tld
! I! p$ x, i' X' F+ f. a! a0 Q<VirtualHost 111.22.33.44>) |6 @/ O  r" u0 D
DocumentRoot /www/domain7 |5 }- _1 Y; i
ServerName www.domain.tld" c6 s) n, }! L
...
8 `9 Q7 x  v" w: d/ \8 [</VirtualHost>5 f, k" q) {1 I" E

2 R8 e: s& R! K; R6 o; A, l<VirtualHost 111.22.33.55>! L) x; d  |, }" }: I
DocumentRoot /www/otherdomain- [& m7 c# B( c( b4 B" l+ h4 J
ServerName www.otherdomain.tld7 @9 h& e/ ^9 |8 }- b5 M% S3 x; K
...& S& ?+ S0 V+ M6 J
</VirtualHost>$ z- p5 d, |2 s; S' `; B8 x$ ~
* a. Z( T' n" @, F0 X
这种设置只有当URL为http://server.domain.tld时才击中主服务器 ( y4 b/ b- d' B" h! _. J

' k  n. W# s7 I" o! d# VSetup 3: 服务器有两个IP,# I. x) t9 L7 i- J( z

5 G( ?% q0 J$ h8 a: a" }111.22.33.44 server.domain.tld
5 ~$ X' r: B. P+ a  x5 N$ l% A111.22.33.55 www-cache.domain.tld
/ R! B: w+ Z+ T! Kwww.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。
  z1 w: |1 g" l$ nwww-cache.domain.tld是proxy-cache,端口是8080,Web服务器使用默认的80。
& O  E6 W, t$ ~& i
3 r" d" X( F0 T8 k% p服务器配置: 3 r' l4 u7 P# C( k0 D9 s/ s" `
1 `! S3 c- _* q" k
...1 o- O3 U4 w* N' x- Y# ?+ k2 O9 f* y# r
. [" S; w; x3 ?5 V% Y6 f/ r
Port 80
& f( U* Y8 a$ `% Q: B: H" |- x* y) y8 M# C; I
Listen 111.22.33.44:80! q. J; E; t4 L6 i: q' H
Listen 111.22.33.55:8080  N$ q1 ^$ v1 @2 w4 l! F+ D# j

% B" M) s5 s/ z( m$ ^' @; iServerName server.domain.tld! [0 c4 c/ ]% j5 O0 g2 x
<VirtualHost 111.22.33.44:80>) z% Y* f8 U, r, p- X3 I3 W- A; F
DocumentRoot /www/domain
2 T$ ?/ }$ [) h& h* G% ^; Y) cServerName www.domain.tld6 h9 E9 G, z8 o! [
...2 [9 X4 P: }( Q
</VirtualHost>
" Z0 @' v9 P" q4 r2 a6 W2 b, H( z5 W" `5 F' d/ S
<VirtualHost 111.22.33.55:8080>
" O: V" O7 K. @ServerName www-cache.domain.tld$ U( M7 e! ]) j, U( x. Q9 [  k
...: U& a- {  r. p" M5 S. z
<Directory proxy:>
2 ?9 W1 Z+ ?) V# E; N. q5 ?order deny,allow
* {3 O; C  l; g1 q1 L/ jdeny from all
& L' y3 O$ i" ~* Tallow from 111.22.33
3 B) z! `6 d0 Q) p$ f' [$ V1 ]6 i</Directory>4 k8 N2 f; o# Z* u; a: {' s7 P/ L
</VirtualHost>
$ ]9 W7 B% S/ _8 n  T1 K
& n! |! c: S  Z 
% P9 Y0 Y8 ?6 l% i* J! P
1 X$ X! K  L: V6 J名字型虚拟主机配置
8 P3 n  W, a( U( Q# \* z) I+ |6 `: i& V# c
Setup 1: 服务器有一个IP,9 w' U# g4 M! }; V

4 K: S; U4 @$ B: w5 D0 r111.22.33.44 server.domain.tld.
& n. E; }4 R9 k% c) I& f. B9 i0 A0 u9 N. \2 X# b/ Q2 x
www.domain.tld和www.sub.domain.tld是别名(CNAMEs) 。 ' U8 o: @. h- O5 G! m

) E6 o$ f0 }4 n0 S& z! ^服务器配置: * k3 u* O% h% `- o% u3 Z/ W1 a$ w
* J" J: I' g; `- E- Y
...
& L6 a  l- e9 R; ]* Z. f4 K
$ F# Z5 ~3 h* T( S% B% d/ R' `Port 80, d. p# F" w/ {) B/ Y9 D
' r' K/ A0 E! k( }
ServerName server.domain.tld
+ z* U$ A! L. i; oNameVirtualHost 111.22.33.44 , D7 J3 k# [; ?6 J8 X  }; n6 x/ Y
! X/ t# q6 o5 Q7 U2 W' ^
<VirtualHost 111.22.33.44>
6 ^1 F" z3 k0 o% I3 K8 oDocumentRoot /www/domain
( Y8 I; ?  G+ X- Q) bServerName www.domain.tld5 O1 b) G/ N- V8 Q9 N
.... U4 S6 V) V" w! `, s
</VirtualHost>
; ~5 Y2 T; F6 y% G. B) O* N0 y2 O1 K# W  s6 l: c4 l1 Y
<VirtualHost 111.22.33.44>
: Q0 O) g' G) ?) m  e! jDocumentRoot /www/subdomain/ u3 D! S: W8 b$ G  @, c  Z/ X
ServerName www.sub.domain.tld$ ~) d% A/ w3 d. Z
...3 N. ^. p1 j! [: T" ?
</VirtualHost> 6 f8 [6 O9 C# S3 s# q+ T

" u9 O0 u% C. R2 g3 r% l若使用IP访问服务器,由于 www.domain.tld 有最高优先级,被认为是默认服务器或第一服务器。
0 S( ?+ ~1 d4 y* l( o9 `( G" Y  K. [/ W, e
Setup 2:服务器有两个IP,8 t8 Y9 j3 A0 V7 e9 }' C8 }
% ?( L. S  Y' r3 u) o) |4 e- I) T
111.22.33.44 server1.domain.tld 用于主服务器
" G5 c* ?9 G' a# Y% ~. ^* ?111.22.33.55 server2.domain.tld 用于虚拟主机1 z  N( l- C3 `2 {3 u$ X. q$ F
别名www.domain.tld用于主服务器,4 e. {4 n. Q" I" }% D, t( w
别名www.otherdomain.tld用于一个虚拟主机,# e& n5 \9 ^  H  v5 o0 J% o
别名www.sub.domain.tld,*.sub.domain.tld 用于另一虚拟主机,
% m/ ]+ y5 a/ B# G# v" g! e! B0 x
9 L. X' u% s9 u2 D( D* F! e# U8 G服务器配置: 6 T9 ?: [4 k0 [% N  v  ~( ^' |

. e" G$ ~9 \# Y, M9 `& ?* G...
" o/ J" I, n3 b/ H+ J0 f" `
; n) N9 w& D( a4 i. aPort 80
  q( I" A. ~5 y. T4 w
$ T" ?  b5 n. ~ServerName www.domain.tld. ^9 B0 F! e9 v; _4 C% c4 J/ I
DocumentRoot /www/domain
2 L+ ~; P* V! N7 tNameVirtualHost 111.22.33.55
) K- Q, x7 ~: X) @<VirtualHost 111.22.33.55>5 N* @- X1 I  X8 w+ m, G
DocumentRoot /www/otherdomain  v- J9 s5 ^3 I' t
ServerName www.otherdomain.tld
7 F/ A! k; H; z+ t9 P  ]...
9 v' b! i" O# y  r7 f</VirtualHost>, m9 W& j; T' G2 N- w
8 T: S; o+ ~7 }# s+ d
<VirtualHost 111.22.33.55>! B% U' k8 G1 U: P* C" U
DocumentRoot /www/subdomain1 [7 [. h! I+ {- {0 |
ServerName www.sub.domain.tld. v& v. ~5 M8 B5 y
ServerAlias *.sub.domain.tld
/ J3 j, K$ |9 l0 w! ?) _...
9 y5 {8 R, J7 q3 N0 P& G" m% v" I</VirtualHost> % ?  D6 ?6 G4 j. B8 F
  ?# G1 v: h' n; t0 w9 a
混合型(IP/名字)虚拟主机配置7 `8 x: b. G; J% @1 s; X
& m# w! w" F6 t3 c
Setup:服务器有三个IP,
8 H4 q/ `0 ^5 W) ]* y* W+ r# A
/ k1 \5 V# j4 S% g111.22.33.44 server.domain.tld 用于名字型虚拟主机
% t, Q9 }& ^& c% M111.22.33.55 www.otherdomain1.tld 用于IP型虚拟主机
# a+ T, y) ?" T; N- K111.22.33.66 www.otherdomain2.tld 用于IP型虚拟主机
  @$ u! o4 s- I3 e4 P. p4 e* A& [9 z- }7 P+ T& \
服务器配置:
; \5 o9 O  [& {  }7 b$ N$ K; B& r...) h/ ?2 j( d8 b& N+ |  [

* K) ^% y1 l3 @/ c, q  Y. J, KPort 80* c2 y! _6 G! D( k" E
ServerName server.domain.tld
' O+ y1 D- Y8 v6 ?1 d! P+ I
8 S4 e" N1 H4 w8 E9 sNameVirtualHost 111.22.33.446 Z1 b1 q" |5 Q; }  Y7 z

2 H2 r+ }2 T6 E) n+ V<VirtualHost 111.22.33.44>
0 o' m6 H; X8 X7 v0 FDocumentRoot /www/domain
/ p$ E2 D: A3 f3 n3 HServerName www.domain.tld% L7 r6 U8 O' K& r2 |0 H
...
' z2 |" |+ ^" n( {5 C</VirtualHost>$ i, k) _9 F" h" _- V2 k

3 O& P1 m4 A2 }<VirtualHost 111.22.33.44>
* a& t6 f6 q, ?, }5 IDocumentRoot /www/subdomain1: i2 a1 s5 y# h+ J
ServerName www.sub1.domain.tld
# X/ h6 w) P+ S...
. s9 p9 |$ a* D" i/ D6 n/ _' Y( b- H</VirtualHost>
) B8 I% r& o* ]# H" Q. J# d( x4 o! X& \( \( n8 Y& j2 |
<VirtualHost 111.22.33.44>
% D! c0 x9 W- e  ~! Q; y5 X- {DocumentRoot /www/subdomain29 j2 T; x9 m& r
ServerName www.sub2.domain.tld( \" ~7 ]2 N$ v4 H& ?4 Z3 O3 t5 p4 Q$ F
...
4 j( g( t% p: P) N& R( D. P3 e</VirtualHost> / ]6 b: K: q. c" p5 e6 Z

; U$ |. I" t9 e/ l<VirtualHost 111.22.33.55>) }% A9 d, c4 [/ c) r% \2 `
DocumentRoot /www/otherdomain1
4 x- @9 B1 Q1 l2 ^ServerName www.otherdomain1.tld
  z$ J3 U/ S9 g4 V( z0 P...
" y& J4 |# T* S& i</VirtualHost>
( Z- B9 `" Y' b. _% _) ]9 p
" W" A: ^0 `! r* T& Y' L4 b<VirtualHost 111.22.33.66>- l$ B% |: c( Y
DocumentRoot /www/otherdomain2
' a" |' K- d$ WServerName www.otherdomain2.tld  F, f4 U0 i4 S
...( v& e& ]' Q8 p, V) Y# G* C& {; `/ c$ w
</VirtualHost>
. f2 {, o5 i. w* D, Q( K, c
" B) L' M) ^+ q端口型虚拟主机配置6 a9 f+ ?$ Q" @5 R# j" C
7 U- Z8 L7 S, Q! o
Setup: 服务器有一个IP,0 \1 A0 W6 V: m0 S8 ]

! E# ]! T' h: A4 m/ u111.22.33.44 www.domain.tld4 v% i) |1 E: _3 x; C2 g
) c3 L  Q9 U9 B) B) p( U
不需要另外的别名或IP,采用端口型虚拟主机即可设置一个配置有别于主服务器的虚拟主机。 , ^, f6 N2 }3 s' p
. ]3 ?' n1 I" O# R3 D
服务器配置: " v4 z; p; F' T4 d
...
6 N8 h9 `5 ~; ]! s+ L7 |- U4 G1 J6 [
Listen 80
1 h8 W4 D. R1 h6 Z6 CListen 8080
) c3 V( u' X  B' }8 Q' U
# @4 K4 s2 {; [+ oServerName www.domain.tld  e2 k/ W) y- C7 }7 L
DocumentRoot /www/domain7 t8 T# h7 w* w* G

1 T( ?. Z# ]8 t" v" N! ?. e9 c5 ~  i<VirtualHost 111.22.33.44:8080>
+ h' x0 h8 D: n  TDocumentRoot /www/domain2
+ k6 |( G+ Y) `5 [( |...
5 @2 _' A0 |& `</VirtualHost>; V: y+ e4 |, X  {1 \

$ v' {2 q# n5 ]% q$ k! K, n ) p0 F6 ~/ N% Y0 ?& K

' z/ @# I; s* C+ F( ~  j来源:http://fengyu.china.com/Vhost.htm
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-10-2 02:38 , Processed in 0.017242 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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