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

使用Apache Server设置虚拟WEB

[复制链接]
发表于 2003-10-12 13:37:43 | 显示全部楼层 |阅读模式
unix 平台与NT平台使用apache server的设置相同。以下重点以unix平台为例
+ C4 b* F# R9 y5 o/ |" N说明apache server的设置。另外值得注意的是,虚拟web的成功设置,有大约; B2 e+ w9 V4 a" z  |3 {
50%的工作量是在域名的注册与解析方面。所以一般先注册好域名然后再做/ n8 J" K7 W$ A% k8 o8 Y
虚拟WEB设置。. Q7 F7 |$ G: D( H( @. M
- `  S0 R- \" b* Q9 S3 ~- C
一 、IP型虚拟主机% f/ H* W3 k% a4 f( R9 C7 S. v

) r. ^+ [% O9 K5 Z4 N) _! W4 SIP型虚拟主机指每一虚拟主机对应唯一的IP。可通过多个物理网卡或虚拟网口实现多IP,Solaris2.5和Windows NT都支持这种方式。  P" |0 r" @+ P

' ?' j9 a, D* Z两种配置多虚拟主机的方法:
+ S  G  {0 Q" Q" C$ m& {& s& U9 _1 n, @, h& ]0 k% b  G- Q$ i
1、为每一虚拟主机启动一个httpd进程。* u+ ]: E: t' D% I' o# I2 H$ \

/ g/ r- D' g+ |- u& z  L下列情况下使用此方法:
% ]; G8 I/ D7 [' p$ z* w- h8 H8 `% M& V  r8 S; Z$ U8 L9 U
? 需考虑安全隔离问题,如两个httpd运行于不同的User、Group、Listen、ServerRoot,两者用户除通过Web相互浏览数据,无法访问其他数据。: ~. a2 ?- t2 d& i' O% z: ~8 e5 h

" d0 @6 W- G* P: f$ F7 \7 N? 能提供足够内存和文件描述器。5 u% [& T7 u' Q) w; R

* a/ l! \( x4 U+ x2 p0 @/ E( @6 ?设置方法:! R, x! g5 g; B" h0 \
3 P  Z5 T, K; ^1 O  A% i) |
为每一虚拟主机建立一个独立的httpd安装,在每一个安装路径的配置文件httpd.conf里,用Listen指令指定进程服务的IP,如:
+ n8 O4 `7 N8 j; n' S
0 _. `2 _7 i: U1 F! SListen 10.68.37.10:803 O) ^+ U8 w$ Q" f+ u& V

' J) e8 f9 n) M/ W% T/ v9 P2、为所有虚拟主机启动一个httpd进程。. a" u# x; b% p4 l# D' [# T; n

, R% ~) ^% ]7 ?  q+ z) Z) a下列情况下使用此方法:" F; [1 U3 P) S. U' H3 {; _! Z) j
8 T2 j' G; ]6 z& D' r( q2 f
? 允许在虚拟主机间共享httpd配置。* @" I: O* m  ~* p" u' S" t( C

; d- }5 H6 J# q/ e) F5 E: `? 计算机服务于大量的请求,运行多个进程使服务器性能降低成为重要考虑因素。
, D8 P. M8 p7 g$ n2 _" f( t) g- c0 P/ N  p* a5 R
设置方法:
6 B0 f% [  v3 E' R5 a% ^8 U. k
% R, e3 M3 s0 X" Y( o* j- P在配置文件httpd.conf里,用VirtualHost指令为每一虚拟主机设置ServerAdmin、ServerName、DocumentRoot、 ErrorLog、TransferLog或CustomLog,如:! s6 B- A8 Z2 z
/ J2 K  |% A4 G' E
<VirtualHost www.smallco.com> #此处建议用IP
3 `2 G4 m! t& k" e0 cServerAdmin webmaster@mail.smallco.com4 p4 Z% a2 I2 u5 n3 U( S! x# _
DocumentRoot /usr/local/etc/httpd/htdocs/smallco/ l5 t; l* r# J; V0 L/ L  ]
ServerName www.smallco.com #建议此处用域名
  V& W) X, G) W/ T, OErrorLog /usr/local/etc/httpd/logs/smallco/error_log: D5 H- R2 I6 j2 s+ C
TransferLog /usr/local/etc/httpd/logs/smallco/access_log! ?7 h: T( F" ]9 b' L( i
</VirtualHost>% M& ]1 S& K5 j7 R7 T) y7 x

5 t0 |1 E# ?% A& z  D( O+ j<VirtualHost www.baygroup.org> #此处建议用IP, B- I- f' d1 ]9 V
ServerAdmin webmaster@mail.baygroup.org
1 M3 C3 j) _& W: O/ ^& ]DocumentRoot /groups/baygroup/www1 |- \- {; P; i5 R8 Z7 [% M+ t% I3 `
ServerName www.baygroup.org #建议此处用域名3 K3 p8 {- k; G) V, C& C
ErrorLog /groups/baygroup/logs/error_log
/ }' N% k- a1 b4 d# E: NTransferLog /groups/baygroup/logs/access_log9 f) e4 S, d9 e3 n
</VirtualHost> ' T6 Q- U* p3 u% P1 t0 S

. }$ Z3 O1 e9 C* T; U7 W  G同时要做虚拟网口或网卡的配置,在DNS也要做相应设置。
2 y, d' o: K  u% S& [. x2 f% f; j& _  h0 e. t% U/ o  Z
二 、名字型虚拟主机(Apache1.3以上版本支持)
3 z7 f3 P6 ?" f, A: ?6 v) Q
0 d1 z( E( f% ~; W( g- s/ F( N1 Z  IP型虚拟主机虽好,但不是最佳方案。它要求每一虚拟主机有一专用IP,在某些机器上难于实现。- e$ \/ _# H/ L, o. D

; P9 I+ V9 s6 S9 z名字型虚拟主机是指每一虚拟主机的名字不相同,但IP一样。它的好处是不限制虚拟主机数量,配置、使用简单,不需另外的软硬件。缺点是客户端必须支持该部分协议,最近版本的浏览器都支持,某些老版本浏览器不支持。但Apache为此提供了解决方法。7 H6 h3 y5 q# K$ ~

; M9 H* n% q& G! a% M设置方法:
- T+ T: G( l- J" o+ {7 m. y7 B" B& ]* T' f* D1 Z% \
在配置文件httpd.conf里,用NameVirtualHost指令设置虚拟主机,如:
& E8 H( P4 K. V1 U, v( g5 \% ~' P  i9 f9 B, ?8 b
NameVirtualHost 111.22.33.44
* I2 _' o9 Y+ L$ a6 B% g& ]- `- U& }9 w1 @9 i7 q/ z
<VirtualHost 111.22.33.44> #建议此处用IP; c; X. b7 S. T) \: O3 k7 g6 Z" D4 }4 \
ServerName www.domain.tld #建议此处用域名
3 P5 H6 k6 _. C& c% EDocumentRoot /web/domain7 z: B! W6 e7 O0 B4 a
</VirtualHost>3 _7 w) o" |1 w+ x5 i  C) w
- t* [: V' v6 ~+ r( i  P, r
同时,在DNS定义www.domain.tld指向111.22.33.44。1 Z2 a  ^0 o- T0 b
5 J' F0 U2 T; A* S
注意:当在NameVirtualHost指令后使用IP时,任何使用IP的URL请求都是针对虚拟主机的,主服务器从不会响应一个使用IP的URL请求。
" m& v9 y; K0 y
) g* L6 X2 d/ X; Y1 L另外,有些服务器希望以多个名字被访问。例如,假设有某一IP的服务器,希望以名domain.tld、www2.domain.tld都能被访问,做法是在VirtualHost指令部分使用ServerAlias指令。如:3 f. P9 ?; u# ~3 I; u1 M$ h1 X
- `  x, U9 b" d& x  s
ServerAlias domain.tld *.domain.tld
/ K" `8 y; O" A, n6 N: J
* |) Z1 d7 x& H, q7 K# D另附一些虚拟主机的设置实例。   E5 L2 T  @( `4 d7 _

! G0 N0 O& W7 z: m7 }% `7 S 7 |6 C& R) v) U$ n  \
# d' s* V# i4 p1 s. k, V8 M: v  I
 
5 I0 Y- f' n1 M0 K+ G' p0 i& d- w) q9 \1 X/ d# |: O
附:虚拟主机设置实例3 i1 u6 m4 p5 ]# H' o* h0 n2 C
2 h: x; A1 k# |1 W
IP型的虚拟主机配置
1 k, u, ^" p( K7 T5 w
" g, ~) @8 n( m2 W. c9 qSetup 1: 服务器有两个IP,
" I% D" ]# Z: N+ \+ t* R, `' }3 x5 @1 y4 l# |8 J! R3 f
111.22.33.44 server.domain.tld0 Z/ p& d( P; i1 ?7 m4 e$ G

) K' J6 _$ v. F- S( k% f111.22.33.55 www.otherdomain.tld+ h+ V: M: v2 l; H$ e& Y6 y/ l

. N: K( m" }6 s  R* [& ?  \www.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。) d. f( T! n7 M: ~% o9 g) [
$ K$ y2 l; ^' V
服务器配置:6 y9 n3 W/ l+ p; Z, A

$ W6 I7 x: d" q7 L5 Y7 `' \...  k0 g; r8 Q, g+ g; P

9 L6 y) g5 ^( A* Y8 s& j9 k5 b+ h: lPort 80
, ?5 j. s+ _1 \" I6 s) C, p( Q( o6 _2 c! V; P* S
DocumentRoot /www/domain6 }2 Q9 W( e! h8 X
ServerName www.domain.tld; t) y3 x4 X2 V! l! y
<VirtualHost 111.22.33.55>
$ Y+ w, O" I! I# JDocumentRoot /www/otherdomain8 Y) _" R( z7 d! @
ServerName www.otherdomain.tld
/ W' H- h0 t& d...& a" [4 d! H+ z" s
</VirtualHost>: a/ @% ?8 k+ s& c: w: h

5 [7 g* |- a; b! g3 ~Setup 2: 基本同Setup1,但不设置专门的主服务器。
9 I+ v* x0 T  L. |; w# B
) V6 O8 [( B+ v0 W6 F" q$ z服务器配置:% E4 O7 f* @6 G, Z. p' p- o2 ~

: P+ o  }6 K5 k* s3 x) f& {...
6 X' U- D. ?. ^; H6 ~
. ]0 p, x5 l& J+ c7 g+ O9 {, w1 wPort 80
* N( Q/ u4 G$ [3 Y/ C5 u8 R
% \# o" @( V1 h, j6 mServerName server.domain.tld0 V- J9 F! v3 q' _" o7 O0 r7 Y
<VirtualHost 111.22.33.44>; `7 B; ~6 v* x4 k2 w3 J
DocumentRoot /www/domain3 Y6 y4 }1 c2 f5 R' J0 O5 v
ServerName www.domain.tld
+ c! e8 f- ?" b! `: z5 S: M* m* M/ p6 z- G...
4 D& r' v4 n+ Q: S5 A  i9 B" x</VirtualHost>
7 F3 a6 v6 E1 u8 c
9 I4 x2 B$ n! `. r7 C( @5 T<VirtualHost 111.22.33.55>4 q, V3 @. f% C7 w3 {
DocumentRoot /www/otherdomain, \6 C1 \* \& y3 j& o& i
ServerName www.otherdomain.tld
; z6 b' r  o9 A7 P" [: |...
" Q( U6 x2 H/ F0 G</VirtualHost>
& g' v! O7 q- @1 L
! M4 i4 [- u# H这种设置只有当URL为http://server.domain.tld时才击中主服务器
7 o8 @: x; p4 \  |4 p
  p# j" m, C& z# U: n/ HSetup 3: 服务器有两个IP,
4 K( u' ]1 d7 l( c
/ G# m  ~' G" m  H) Z5 X- t; x111.22.33.44 server.domain.tld2 X9 G. e; Z! N, B4 b  h2 F
111.22.33.55 www-cache.domain.tld
5 S# M3 c6 N. z# |; \0 X9 F$ Q8 ^www.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。* y2 @* B  K3 n/ m0 b9 D; Z
www-cache.domain.tld是proxy-cache,端口是8080,Web服务器使用默认的80。
4 i0 {/ ^, x7 R. B" Q
2 W( D" F6 ]! N5 y' a% W/ Q服务器配置: # d$ c, p- s3 L! v

* N5 \" V& K9 ^$ ^- ]& ^7 y7 h...5 y5 ]2 m% d/ I! V
' V# W' C, o& p0 j
Port 80
' |. x7 Q; W: |  k+ K
7 {. o4 C  i8 @: D1 IListen 111.22.33.44:80: m7 W9 e+ K" {4 Z1 @) p  f
Listen 111.22.33.55:8080
/ y) ]. f, Y; l# U% d6 X8 c1 p& q- V, A; m1 }
ServerName server.domain.tld9 V+ S6 i8 w6 T& K1 w  j7 W
<VirtualHost 111.22.33.44:80>+ C* b) M1 K9 Y! ]
DocumentRoot /www/domain* o/ _6 A/ N  S, r7 X5 T4 w" z
ServerName www.domain.tld
2 F' Y) [, ~& ]/ W! d+ c...
3 S; T' y8 i4 o" j</VirtualHost>
( n/ W! u; }9 D2 e( U4 O! }% z* U" i, M2 y7 }) M
<VirtualHost 111.22.33.55:8080>
+ s8 p$ L' @& s: p; N& dServerName www-cache.domain.tld
& M3 L# f: g2 u. D, x+ W" ~...# K! c6 a0 T, \9 q2 I: |
<Directory proxy:>- i9 }: K% m1 d# V" j
order deny,allow
9 G3 i- X, N+ D6 c" @- \$ U  |deny from all
& h% h. W  Z1 N1 |4 T( d3 callow from 111.22.33* g( j: f, d& C* @
</Directory>
2 }4 z, Y7 B+ K5 p7 z( {</VirtualHost>4 T+ ~4 p7 u1 @' d, Q4 g  ^
4 b( ?7 \- |' g6 v
 
* u$ {1 E9 O- C. z' k
% s( W6 t5 w; }1 R名字型虚拟主机配置, l" Y) v9 s4 T7 @( {. }7 a
+ G4 c1 }; f0 G  {! L8 G. B1 {2 k
Setup 1: 服务器有一个IP,8 {4 f6 Q$ q1 y& \. L2 R

, H$ f7 x% z! P- E5 T0 s111.22.33.44 server.domain.tld.
/ P) K" P4 v" g1 t8 L% X
- l4 e8 `' [$ j& Q9 n1 owww.domain.tld和www.sub.domain.tld是别名(CNAMEs) 。
' I' e9 Z( k% ?1 l0 S; C
2 U- |% L, u: d$ V. z2 A服务器配置: 0 I1 t5 ~% a3 M) T! N5 @( c3 b3 p

7 }6 ?7 U4 @8 n! B) j* {. k...- Z" e! ]4 L+ l7 \9 S, h

( r& ?  E" J+ J' ]% u  m+ r# T5 dPort 80
; _6 ?2 E4 G) q' C, X/ Y- A+ Y2 L5 a. b$ O% f, o, a8 s  S
ServerName server.domain.tld7 Y) ~+ l$ `, x4 _) l) ]" H
NameVirtualHost 111.22.33.44 6 G" B& l* Y) C1 e/ f8 T+ q
1 `; A0 {9 x+ m) v$ g' }; x
<VirtualHost 111.22.33.44>
3 ]+ O% w8 {" ADocumentRoot /www/domain
# J4 Y0 g5 ~; d5 Y- ?ServerName www.domain.tld
/ U1 c# w; ?  E9 U9 f...
9 a1 J& t5 E# q- }! B& t</VirtualHost>2 x9 n/ l2 b1 b) _9 ~

" m) Z5 z; ^; l, y! x<VirtualHost 111.22.33.44>
, |2 M" B% c& B( RDocumentRoot /www/subdomain
3 E5 L; q9 }) n& e7 }7 ?ServerName www.sub.domain.tld
' e  F4 Q; x/ a! M...  m& _, }. U4 y
</VirtualHost> , }/ l; O+ b4 ~2 J1 q. U3 z+ R; y
' V. V* O* W: }& j+ J  o
若使用IP访问服务器,由于 www.domain.tld 有最高优先级,被认为是默认服务器或第一服务器。
0 I) y& p; ^7 X! g  a7 u* ?' q$ g; I; Y! ^- u
Setup 2:服务器有两个IP,, }, y. L, ]# J3 u

4 Q5 U) x& i$ X+ Z111.22.33.44 server1.domain.tld 用于主服务器8 j* J) F+ y3 U3 b0 @
111.22.33.55 server2.domain.tld 用于虚拟主机
: B* t% U9 X9 s3 u9 N* G别名www.domain.tld用于主服务器,
) g0 |. f# m5 i+ ~. L% b别名www.otherdomain.tld用于一个虚拟主机,
! i0 t6 ~9 r" K, r3 }& J- u3 h! t别名www.sub.domain.tld,*.sub.domain.tld 用于另一虚拟主机,# S8 f; |7 i) F& U! y) g) O$ i

8 P. s) h' m4 Z, o1 X# d服务器配置: + S7 n- b* ~* h3 |. H; f5 x

% [6 `% b: h  [...# h" H, S/ I. h3 o1 z

* X# a; r3 w( u9 }! P1 jPort 80
+ k$ E6 K3 r% J- J2 [
) [! F- w1 a0 r" V" e/ P, |7 TServerName www.domain.tld# O1 O) I7 {9 {' g
DocumentRoot /www/domain$ x! O% h+ z1 e+ L5 Z
NameVirtualHost 111.22.33.550 }: S# ^2 r4 w* G- B! y
<VirtualHost 111.22.33.55>- D2 u" d1 V4 T! D4 c
DocumentRoot /www/otherdomain
2 A5 B5 U) z7 }ServerName www.otherdomain.tld5 i) j. o4 ]. P& e4 q5 U4 b5 x
...
" q% }' i5 _! P+ v</VirtualHost>4 ?) N" D! _9 m$ V' p
! L2 Y. f4 N# D" \# N5 _' A
<VirtualHost 111.22.33.55>8 z# s& Z  O: x0 T, `# [
DocumentRoot /www/subdomain0 D- d3 q) x) U! p8 v* ~4 S" K
ServerName www.sub.domain.tld5 G4 D  |. X1 A: N/ g, g! y; Q
ServerAlias *.sub.domain.tld
' t# v8 e% B3 |3 }8 G...; R( P! u0 a8 w
</VirtualHost> % b/ T# [2 ~; v5 N7 g7 O2 Q$ {

5 F- r( H7 m' S; G# G混合型(IP/名字)虚拟主机配置8 C+ L, c2 K6 Y6 c7 e* r( A8 J% Y$ k
/ |- j. P$ t/ q- l. W6 v' |
Setup:服务器有三个IP,3 a7 Y9 q7 a% ?/ w. _% q- @; k, P

* e, D9 z( f, K" `  I111.22.33.44 server.domain.tld 用于名字型虚拟主机
) V: g2 |2 A& D  c: D) M" @111.22.33.55 www.otherdomain1.tld 用于IP型虚拟主机5 _8 e0 m* F# v6 r
111.22.33.66 www.otherdomain2.tld 用于IP型虚拟主机& f9 o$ A! j5 ^2 o9 h- @1 V

, I. r1 Y* `7 ^$ i服务器配置:" q& [* ?% u' A4 l1 O" c  d
...
; B. N7 n7 [' O5 }0 h$ q. a+ i6 h( c; n. s. h8 m! _9 j6 E
Port 801 e. T7 ^/ @: N( M
ServerName server.domain.tld
) _& ?$ V& A, b7 x" \2 x+ T" V$ T* L) I" {' x% y6 J
NameVirtualHost 111.22.33.44
+ `0 f' _" R- O' l& t; y4 p9 V7 A% U  G
<VirtualHost 111.22.33.44>7 ~; F* x! K, e2 K
DocumentRoot /www/domain
9 ]+ ~; H: Z7 h$ TServerName www.domain.tld- P( `+ m9 V5 D
.../ f( a$ m+ v4 O0 w! ]
</VirtualHost>  j( w0 |$ `; ]7 w4 n
, \" M* n4 L( S5 }1 c
<VirtualHost 111.22.33.44>9 P2 l# X% \  e; Y8 z
DocumentRoot /www/subdomain1. |" w( C: m/ R  E2 J" V7 o
ServerName www.sub1.domain.tld
4 e/ {4 B2 C" E) L6 ^7 @: [" l$ x...+ U; q5 g; ~: I
</VirtualHost>
+ e" b" r5 i4 T/ g' g+ V3 k/ I5 N, s
& V1 }+ V  l, ^0 E' ?# }2 x<VirtualHost 111.22.33.44>' I& W+ D9 U5 p  ]* i
DocumentRoot /www/subdomain2' @. _7 i5 V5 D0 j; @! P/ m
ServerName www.sub2.domain.tld& U2 D6 j- L  W7 O! q: c* L2 g% S" t
...
# g% V9 Z6 E7 d" F) z</VirtualHost> ' w6 B& O+ R. B. W5 b: N$ Z
8 m' i/ h( _' v& M- O
<VirtualHost 111.22.33.55>) G& i, B* d, h# g0 ^+ O
DocumentRoot /www/otherdomain1
" J; z9 b3 w0 {ServerName www.otherdomain1.tld: A; ]5 b& I) a  g( |( T  L
...6 Y6 z9 ]4 {8 u7 L+ \4 q
</VirtualHost> 6 f  j: P; g! E( Q
; ], ~8 b: g: y# y/ W5 X" L0 p
<VirtualHost 111.22.33.66>
* t0 t0 @; ^  z1 [% y# lDocumentRoot /www/otherdomain2
% }6 y& V* X/ J" aServerName www.otherdomain2.tld0 i1 t, f6 Y" \" C& s/ e$ i
...
  p* B* U. W' Y2 \! q. C3 Z1 _8 I</VirtualHost> % [$ C: i& L8 I/ {9 W# E/ H; k

* Z- U3 w; R1 m9 K) Z端口型虚拟主机配置7 @5 i+ O9 k* U$ z7 j# ~9 X% L

4 I' Z7 [4 D9 ]$ G- {8 s. o2 L9 VSetup: 服务器有一个IP,
& z# I4 K; g2 P* k3 x2 O* a
  R. M8 ]0 R  u4 Y' E& M1 r7 F111.22.33.44 www.domain.tld
3 N, c/ Y; v! E4 h! ~& Y- `9 x& t3 H" Q2 p- t4 j. x; o( u
不需要另外的别名或IP,采用端口型虚拟主机即可设置一个配置有别于主服务器的虚拟主机。 " b2 X; H& v9 E/ [; m# y: ^: `

) q2 Z" Y# `# h# v9 j9 K服务器配置: 4 Q2 @7 f! X) R8 H- t/ p
...8 H, F3 l* `7 X) [
! y$ y2 r) K! I1 d
Listen 80
3 E7 o7 L3 o! ]5 T- i: y" C+ pListen 8080- Q# C$ m2 }! I1 u* T2 h0 d! y
- F3 \+ V/ V3 H0 ^4 Z. M
ServerName www.domain.tld. K/ L. I5 j: p* `
DocumentRoot /www/domain: N3 H% `, f5 O4 H4 [4 l" u
: }! D$ z- e  i/ Z
<VirtualHost 111.22.33.44:8080>+ I9 ]9 F* v( H' {
DocumentRoot /www/domain2
; W' j3 z* {( ?, _2 D6 m" ]...8 `& P& _6 Q4 x; M: c
</VirtualHost>
, T5 M/ n5 s$ h! a9 g5 u5 \: l0 I- h& J* R) @1 X7 j
 
7 y* O" Q/ b" K: a9 S0 Q/ e% B# K  m# K1 V" Z; |& d
来源:http://fengyu.china.com/Vhost.htm
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-15 08:26 , Processed in 0.017812 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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