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

使用Apache Server设置虚拟WEB

[复制链接]
发表于 2003-10-12 13:37:43 | 显示全部楼层 |阅读模式
unix 平台与NT平台使用apache server的设置相同。以下重点以unix平台为例$ f5 g9 G4 J, K
说明apache server的设置。另外值得注意的是,虚拟web的成功设置,有大约# T! f4 U) a: ?1 d2 Y7 }% {) D
50%的工作量是在域名的注册与解析方面。所以一般先注册好域名然后再做. [& d: r8 Q! ~# d
虚拟WEB设置。
# R7 W: V6 i4 J% U; K9 {5 v
! [2 e8 i7 A3 ~6 H- q! ^0 `一 、IP型虚拟主机4 R- C( I; |1 u8 Z& k. q) U

( s2 r% w4 W! @8 n: LIP型虚拟主机指每一虚拟主机对应唯一的IP。可通过多个物理网卡或虚拟网口实现多IP,Solaris2.5和Windows NT都支持这种方式。0 n( b$ x/ A- e, c

, v$ t+ R# y  V, E5 \两种配置多虚拟主机的方法:
2 R5 z0 ^5 H: T/ w% \: ^+ G$ v
9 z' v3 @+ y3 p/ f1、为每一虚拟主机启动一个httpd进程。+ [8 Z$ c% S6 K+ x) \! K& Q

: Q1 k# a+ ~3 Y- \$ A下列情况下使用此方法:& z0 V1 B9 C* ?- a! w- ^1 x8 V
7 W8 E8 T1 A7 f$ a
? 需考虑安全隔离问题,如两个httpd运行于不同的User、Group、Listen、ServerRoot,两者用户除通过Web相互浏览数据,无法访问其他数据。
% A; }9 @  N# x1 Y$ E: ?
/ u" k1 T# k2 K7 ~? 能提供足够内存和文件描述器。
) A" C* `$ ~: @% H" j: j! X3 s; V1 }
设置方法:
8 @/ f8 ~: d8 Y, S& u4 `! N$ s+ C  _& Z2 b$ C
为每一虚拟主机建立一个独立的httpd安装,在每一个安装路径的配置文件httpd.conf里,用Listen指令指定进程服务的IP,如:: o2 }6 o0 R7 h

+ p* v. Y5 c0 ^' u% gListen 10.68.37.10:80
3 z/ Y1 M  B9 m! E6 @) b" `" Q! o  @; R8 s8 `% l  Q  ?
2、为所有虚拟主机启动一个httpd进程。
, O/ ^4 U7 P2 r$ P5 Q0 Z- Y9 Y4 V7 ~% R* E  I
下列情况下使用此方法:
- h5 @' V: Z) S8 l5 S4 k* l3 ?/ `& W7 i! y' t
? 允许在虚拟主机间共享httpd配置。
+ }+ O3 _. D2 f0 g+ @1 |
: M* t; M0 S. m  \" b; G2 G$ R5 B0 Q? 计算机服务于大量的请求,运行多个进程使服务器性能降低成为重要考虑因素。$ \1 K7 j. o9 W% E# R# f2 B
) d; h- {4 T! W) w
设置方法:9 y9 y3 Y% U3 o% U4 U" @

7 e& `/ U6 ?$ D0 Y1 D7 _3 E8 o在配置文件httpd.conf里,用VirtualHost指令为每一虚拟主机设置ServerAdmin、ServerName、DocumentRoot、 ErrorLog、TransferLog或CustomLog,如:: V& o! Y0 B% Q  N8 Z  N
- n# j3 v; c# w( g. l3 s$ @# W& k
<VirtualHost www.smallco.com> #此处建议用IP
5 }' H) E: T8 W9 }! kServerAdmin webmaster@mail.smallco.com0 [/ @* R1 y2 _+ s' N' D1 P
DocumentRoot /usr/local/etc/httpd/htdocs/smallco
. `4 l1 e; n0 o% b- F3 }ServerName www.smallco.com #建议此处用域名
' o9 W7 Y8 A0 lErrorLog /usr/local/etc/httpd/logs/smallco/error_log
% ^/ p) t' L: r, O9 C- y% R: j) ?TransferLog /usr/local/etc/httpd/logs/smallco/access_log* t5 s$ f! J5 |; T/ S8 c
</VirtualHost>1 y7 k% v; l* Q' H6 Q0 t
1 b9 u) l2 i, I
<VirtualHost www.baygroup.org> #此处建议用IP
2 ?' |) P% {5 Z' |/ h2 ]ServerAdmin webmaster@mail.baygroup.org! E* @5 A) `" [0 I
DocumentRoot /groups/baygroup/www$ B8 D: `7 C) M* p- N3 z* O1 X- H9 j
ServerName www.baygroup.org #建议此处用域名8 Y0 W: _3 k+ G5 h" R
ErrorLog /groups/baygroup/logs/error_log
8 y4 C+ J6 d- Z' I% k* F3 i7 VTransferLog /groups/baygroup/logs/access_log
( w; w" z% Q' ~7 o, n$ ^# Z+ ~</VirtualHost> * D' M! C, h0 F( ^1 I4 h
2 }: A# k& x# J* h; ~
同时要做虚拟网口或网卡的配置,在DNS也要做相应设置。  k5 L/ S5 A2 v* G! U3 L
/ c0 [3 m/ [' G4 m6 n3 f/ F$ \- D
二 、名字型虚拟主机(Apache1.3以上版本支持)5 o& D* ?7 R2 M- u' u
) ?8 ?6 t' E: x
  IP型虚拟主机虽好,但不是最佳方案。它要求每一虚拟主机有一专用IP,在某些机器上难于实现。2 I0 D$ L$ f; S8 j" {& a3 {

0 n+ F! N$ M& y% C) h  @名字型虚拟主机是指每一虚拟主机的名字不相同,但IP一样。它的好处是不限制虚拟主机数量,配置、使用简单,不需另外的软硬件。缺点是客户端必须支持该部分协议,最近版本的浏览器都支持,某些老版本浏览器不支持。但Apache为此提供了解决方法。3 T) w" u+ x7 h+ e9 {
: Z0 e5 _2 R' Q" J/ ?5 _8 y$ A  G
设置方法:
* Q6 g7 f, K2 b+ v  M
& N! Y( [9 {; @0 W在配置文件httpd.conf里,用NameVirtualHost指令设置虚拟主机,如:
8 A% B9 ^% M) y5 J! `9 R( M. J" V
$ K$ w; g+ [+ C- I6 F$ H6 HNameVirtualHost 111.22.33.44
- X( u/ E' O8 o' N7 s* g  i- k/ y. e5 w2 d& P. `1 b1 p5 F$ \; E- D2 p
<VirtualHost 111.22.33.44> #建议此处用IP
7 h7 I9 ?: M- K7 S" ^ServerName www.domain.tld #建议此处用域名
0 g: R! i  }* ^7 z5 L: sDocumentRoot /web/domain7 e# @, }8 ?: w5 m+ m
</VirtualHost>  Z, h3 h; B- B- i9 j6 s
2 }3 t0 k$ b) F# v( _# \7 W' f
同时,在DNS定义www.domain.tld指向111.22.33.44。
$ W5 S# _+ @! ]5 X& Y5 _0 |1 A- z2 m. d: m4 v3 X! A+ ?- y* n
注意:当在NameVirtualHost指令后使用IP时,任何使用IP的URL请求都是针对虚拟主机的,主服务器从不会响应一个使用IP的URL请求。5 N$ L; F7 K5 |% w% N

+ m; [, }4 w' R( I! [) n5 O6 ~另外,有些服务器希望以多个名字被访问。例如,假设有某一IP的服务器,希望以名domain.tld、www2.domain.tld都能被访问,做法是在VirtualHost指令部分使用ServerAlias指令。如:# `6 E# M6 e3 J7 u
$ q/ E, H( Y% ~" u' L0 e
ServerAlias domain.tld *.domain.tld) X# ~  _. M9 h* n

) i( a9 ~+ _9 f4 g另附一些虚拟主机的设置实例。 8 B% H2 q5 ~5 |  W1 ^& S
. j3 D1 D0 u% R
 
( B$ @/ A6 n0 d# r- x0 W# I5 `5 G$ Z
 ) I6 t: V0 j7 ^5 L' [
1 q, P8 }; B, C+ \% u7 F
附:虚拟主机设置实例0 q: C+ [1 P8 Q$ a( _5 ~( g
' y3 m. {! w0 }! g# }
IP型的虚拟主机配置& g( F9 Q9 P* ^4 L
5 G* K& D. a* l& @1 [0 |1 _
Setup 1: 服务器有两个IP,
; \6 t+ h! G; L! D7 I+ d/ P6 l8 b+ F3 ~1 r' Y! C3 T( N
111.22.33.44 server.domain.tld, w& h% a' T# _+ P( d, r3 {3 e7 g
6 p! K* \" T- q. X" k+ _/ }6 J
111.22.33.55 www.otherdomain.tld4 [$ Y# G" {, N  g3 ^- P. x- |
- r9 [; [% A) Y5 b$ s) w
www.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。
: `) _8 G- S8 ~: d% O! x
& J( Y# n- P, z  P! B+ t4 ?服务器配置:
- W& Y! D+ a. j2 x: o7 s3 l% X- F9 r6 [& D( x6 A* _
...) a) X" k6 c9 B8 L5 V5 E' w2 j  y# h

4 R' }5 ]6 I. [Port 80
* m7 H. T$ S4 m
; M( K7 ]5 j4 r4 T8 _DocumentRoot /www/domain9 ~, l' _" U/ H2 j- X
ServerName www.domain.tld
* A' i. Y, f1 d# `" K, ~/ N: D<VirtualHost 111.22.33.55>- a  R9 i$ e# B7 u
DocumentRoot /www/otherdomain3 w- S! F3 H! d
ServerName www.otherdomain.tld
: n+ N2 H3 @7 {. e4 p% P$ @...
! R& G# s. P0 R2 I& [' q) E1 X0 S</VirtualHost>
5 a( W; \1 F1 @. R+ u+ ?* i
( H  \3 K0 l( z9 y4 c% x! r+ RSetup 2: 基本同Setup1,但不设置专门的主服务器。; z5 q3 J& p! \
) Z) V6 {/ ?0 i  |& J# k
服务器配置:
+ j* [% {5 I: Q+ B/ u2 t. h3 B. z- {& X' m& T  R
...
2 k% G% P) [$ w: c2 F" \6 ?, {
; v9 w* [( N/ l: L: u! {' vPort 80
( W4 }. b. \) f. j" B# y; o/ p+ u7 c2 W2 u3 b
ServerName server.domain.tld
0 m1 @) S/ Z' ~; z<VirtualHost 111.22.33.44>
8 X1 E3 Q6 @& \DocumentRoot /www/domain$ f. a' e. I& _% K
ServerName www.domain.tld) F1 c' l/ i7 P! r8 k
..." W4 S- b+ [: I" J' ]3 j* m6 f- |7 v
</VirtualHost>
# R: ?/ {" U) o) U; E
+ N4 j$ B6 e0 f<VirtualHost 111.22.33.55>
2 f8 j2 L3 f1 YDocumentRoot /www/otherdomain
3 I2 F( A  ]- G) {; W# bServerName www.otherdomain.tld5 ~7 w4 Y" Y( H( i) e8 |
...
; B/ G/ S, ^' Y# n! G</VirtualHost>
6 g- L  A4 y4 Q% ~, g+ p+ C0 P' I6 G: a6 r! B2 y. x, L0 j  e
这种设置只有当URL为http://server.domain.tld时才击中主服务器
) r, J, J; u( b* o  t' A" j! T. C5 p$ g8 a# H0 V
Setup 3: 服务器有两个IP,
- L0 h! N. o1 I# X9 I% z
$ o3 ~# G! n% `111.22.33.44 server.domain.tld
0 D7 G5 ^, k, b  x111.22.33.55 www-cache.domain.tld" ~3 V8 e4 `; O
www.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。3 J& t  C( K) A7 c! C* ^
www-cache.domain.tld是proxy-cache,端口是8080,Web服务器使用默认的80。& ?& ?( P; B7 @, C. e

: @0 k* [* U# R2 K# |# t服务器配置:
! a2 b, X8 t; D- k
: ~( \( `- D3 d- w...
$ s! Z  m" ^( N! e. P0 h& D; T5 z3 f- W; D' V
Port 80
8 q" q$ ]$ q' p2 g4 V
6 J& O0 |1 U! C; Y& nListen 111.22.33.44:80/ Y. S+ Z  M4 n+ w9 I& ]
Listen 111.22.33.55:8080
5 F  ?; m  R7 N5 K, l0 s" x
+ L# |" h6 G' T& t# ^0 A) YServerName server.domain.tld
0 ^5 Q) q2 n" H% J# i% v<VirtualHost 111.22.33.44:80>
8 x3 n0 }  u) p3 ]7 @DocumentRoot /www/domain+ a9 Q* h: K7 B( u
ServerName www.domain.tld
* o0 e  X0 ^# e7 k1 R& ?! r..., W  w* U" n) S  c* x  y+ ?, i
</VirtualHost>. J' t+ n, ]% ^% b% H

2 D  ^' p& S" B: N  Q6 N" h<VirtualHost 111.22.33.55:8080>$ ~1 R1 |/ ~# C& R) q$ M! R
ServerName www-cache.domain.tld
8 ~7 A+ M9 V1 H1 `0 n/ k2 P' l..." b" {6 ~' T5 C
<Directory proxy:>; |4 @  H3 H: w6 _- X( c4 r6 y1 l
order deny,allow( Z- u9 A! U. J
deny from all7 |* T+ X) f- b. |- W# u
allow from 111.22.33% F- r' e3 g" c2 Q
</Directory>
7 d% s% e! _5 C  s4 I; r: s</VirtualHost>( Y: Z/ l5 N. g' H) c. U

7 R& |0 k4 u/ A& p2 i ! V) _4 J9 c) Y( W) {( _# R# ~
$ T- @; M$ W- t
名字型虚拟主机配置
0 V4 `' {1 d: B
( x1 d, b+ X# c, ISetup 1: 服务器有一个IP,5 y# t* z% `8 k5 h

" @. y3 ]5 f. u5 D, W$ }111.22.33.44 server.domain.tld.
+ W7 p- _9 m4 ~" ]+ N# G$ c9 m1 q" v& }. y
www.domain.tld和www.sub.domain.tld是别名(CNAMEs) 。
2 I% y( {; o$ D& x9 S
2 |& m- t# t* f5 }4 o- n: U' ^服务器配置:
7 j3 |: ?3 `8 x( h; y8 q! k
3 q' G# D# e) I/ G& q...
" S9 h5 a! z8 x( P& o
9 \3 A% [5 m1 D5 Z; YPort 806 V  h- \6 h9 j& c/ |" J2 u

* Z! W- b/ K6 J" K7 w# J& M* CServerName server.domain.tld+ i7 P+ I3 Q# }
NameVirtualHost 111.22.33.44 # V0 m' ^. w- c. j

! f9 R% f" f+ ~+ `; t<VirtualHost 111.22.33.44>
! Q! e* X+ Q) PDocumentRoot /www/domain
4 y9 u4 C$ M. A/ Q- WServerName www.domain.tld
, K/ i$ p' f( _. D  Y, T4 M! b...
/ P5 q, g! W5 H) [* g  m. e1 `</VirtualHost>
" A6 h7 z9 a1 O4 Y; d- e6 J' J2 Y2 ?+ e, j2 i: [* [3 }% F
<VirtualHost 111.22.33.44>; Z2 D/ i- g; u
DocumentRoot /www/subdomain" n# u0 {* X$ ~. e
ServerName www.sub.domain.tld3 G; I' L' C" w8 U
...
0 T! ]: l0 K& ?" J</VirtualHost> ; K) g5 n, a" o$ N% \+ B- i! P

! M3 _. z! @6 ?% g  F若使用IP访问服务器,由于 www.domain.tld 有最高优先级,被认为是默认服务器或第一服务器。
0 g6 o9 P2 t* v, ]0 S$ d
1 k) W; b/ Z# a$ X' dSetup 2:服务器有两个IP," k0 L: Q+ L- A- \& k
; ^; t) E( [. T2 L3 O7 N
111.22.33.44 server1.domain.tld 用于主服务器
7 G6 m6 c5 ^1 E111.22.33.55 server2.domain.tld 用于虚拟主机+ f4 ^3 X) R" `& r& f4 ~  B/ y) A
别名www.domain.tld用于主服务器,; r  I3 T* R; R- G# F& k
别名www.otherdomain.tld用于一个虚拟主机,
  C0 l5 [  V" z1 b$ p; h别名www.sub.domain.tld,*.sub.domain.tld 用于另一虚拟主机,
- m5 Z: x" e/ N5 U' s: T% O4 _, n3 E2 }% v$ ]2 ~
服务器配置:
$ u- l' h& L' a: ~& I: `. W: [4 p( c7 o, i5 \; M, [
...- d, C" g. R; a" E' |$ t' J8 C4 F
2 W. g6 R( o4 i
Port 805 {1 t# u. m& d
: z  D) y- u6 P; k9 u1 r) g* v8 @! [
ServerName www.domain.tld
7 `  ^# W7 [6 h! {4 CDocumentRoot /www/domain
1 D; [& C5 R* P( ?' O4 r2 MNameVirtualHost 111.22.33.55# Q0 Y9 `- w+ [, |; J( E7 y9 h
<VirtualHost 111.22.33.55>
. b4 T# n  V* U! H( X7 vDocumentRoot /www/otherdomain
" a( l& O6 ?3 \/ O; L' FServerName www.otherdomain.tld, r* A$ R4 F; @9 \7 M
...5 j6 W" n' Y) _# G6 a4 A
</VirtualHost>$ ]" K8 W/ U% Y
% p4 e" X4 N+ F/ d# \
<VirtualHost 111.22.33.55>. g6 R% w% Y  l  d
DocumentRoot /www/subdomain: Y  b0 ?1 v/ X, _8 t% L+ b  Z
ServerName www.sub.domain.tld
- c2 l4 a) ^  c5 fServerAlias *.sub.domain.tld; b* e' n3 E3 N3 k$ g
...; w8 g  W3 D+ s- J0 |& L9 Y( \
</VirtualHost>
3 g8 a, m: B# w# N, D2 j( z) V3 B- J$ u% P; Y) T, G1 G+ H- _
混合型(IP/名字)虚拟主机配置2 p2 `: M6 y8 G' e$ t% M
- y! w) x$ @9 X: u
Setup:服务器有三个IP,
) Z- X0 j: f$ n: p4 j% `3 P+ L& k5 b( g, \- F8 \
111.22.33.44 server.domain.tld 用于名字型虚拟主机1 ?& L5 s8 H$ U4 p' }; U/ p
111.22.33.55 www.otherdomain1.tld 用于IP型虚拟主机
; s) `% [2 k, y. R2 d" Z' \111.22.33.66 www.otherdomain2.tld 用于IP型虚拟主机+ c  ~; K7 ~% F, g6 r
. ]% X- a$ J& E6 X6 l+ B( f, N
服务器配置:
. q0 T9 ^  W" Z( e...) o, G+ O+ d! l+ u) l* E
! V+ j; F9 l; [3 }
Port 80
; u5 z. |, k( i; w6 z( HServerName server.domain.tld' ^1 ~  \- D! @0 D- g( X. a
" x  `7 K! [9 z  U) y& u& s
NameVirtualHost 111.22.33.44. Q+ Q5 _0 @" V- O" C2 J% M

$ Y2 e  k1 F% d# E<VirtualHost 111.22.33.44>
. ~! ~" T4 I; n; S8 H( I: oDocumentRoot /www/domain% b9 @$ I$ g3 o( f" t' Z" g
ServerName www.domain.tld7 J7 a2 }6 T" }2 s+ B2 L
...
# \6 n6 E# e5 b, [5 G3 P</VirtualHost>
6 O+ b( ]" H! C, _  ~# V% u4 Z$ m* x- D4 G8 h; d) S$ z
<VirtualHost 111.22.33.44>
0 `2 w; ^* `+ E" Z2 O1 l$ pDocumentRoot /www/subdomain1+ `5 A7 g9 J. ?& x
ServerName www.sub1.domain.tld& Y: E% i! v. W
...
* d* f3 L) ]' A9 a" z  J</VirtualHost>
4 x+ M7 l7 x+ m4 q) l+ h, z( }* C8 e
<VirtualHost 111.22.33.44>
. Q2 z+ o$ o! x! x  N( aDocumentRoot /www/subdomain2
0 N4 j$ l, r% N: VServerName www.sub2.domain.tld$ E( A( ~# H; J  Z, W
...7 j4 t- e5 o* T9 E; n
</VirtualHost>
. e: X3 M- b! J& f; s4 w( H' J9 g. X: t
<VirtualHost 111.22.33.55>+ x% e2 t3 k1 g
DocumentRoot /www/otherdomain1
# t* V+ ]0 J0 R9 Q# H2 [9 {* TServerName www.otherdomain1.tld
" D; N( R9 e* [' c" V1 ?...3 o( _9 X8 p5 S& m
</VirtualHost> : `( n2 |5 r, x+ Q

' s8 `% R/ L: Z  Q. B<VirtualHost 111.22.33.66>/ f5 |9 F+ ~7 ]3 H
DocumentRoot /www/otherdomain2
6 X; z& x% N3 ]( c2 Z2 b/ j0 oServerName www.otherdomain2.tld" ^8 C! f& b+ ]9 F( _
...# }" `! Z; K( _% s5 r
</VirtualHost> . n1 e  b3 A3 k

7 w6 P* h% c0 j端口型虚拟主机配置2 w* B' a1 s) Q8 ?
) W  V. m9 Q2 o6 n/ a
Setup: 服务器有一个IP,* i$ E8 r! P1 y. i; V& y
* x% v- T; }9 `0 R! ^7 |5 q
111.22.33.44 www.domain.tld
; o8 C+ {- E6 Q- b% A+ k3 ?( B+ U0 G) `- b0 o
不需要另外的别名或IP,采用端口型虚拟主机即可设置一个配置有别于主服务器的虚拟主机。 5 ]5 ~% i$ o* O3 N
1 ]/ g+ k$ n2 G- q6 ]$ l# k- m
服务器配置:
( l" Y5 V3 `/ |+ p, B* ^+ J...0 z9 S1 {7 h: K$ ^" y$ E
. ~  [3 q0 \" o6 m
Listen 80
+ ]' a. v. A! }$ }& yListen 8080+ u+ `+ U% V$ j+ _

; s$ ]* G2 Z8 D4 q+ F5 A% J7 UServerName www.domain.tld
- _* \- O% G- W1 wDocumentRoot /www/domain
. c5 K/ ?' _. d2 S
& S4 D9 a+ `/ F<VirtualHost 111.22.33.44:8080>* {. l- W$ P# k; I6 M
DocumentRoot /www/domain2
- m" s6 I2 p- T# ^( W...
4 ^3 Y  x" E! j( l</VirtualHost>
- p9 u1 e, K  L* T; v5 L4 Q% r9 ~6 f( [7 F0 h4 \
 
+ E" A0 \1 v/ W8 N
$ y% Q' l. e9 m% p. ?来源:http://fengyu.china.com/Vhost.htm
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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