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

使用Apache Server设置虚拟WEB

[复制链接]
发表于 2003-10-12 13:37:43 | 显示全部楼层 |阅读模式
unix 平台与NT平台使用apache server的设置相同。以下重点以unix平台为例
' H5 F$ ?2 h' |# k% B' E说明apache server的设置。另外值得注意的是,虚拟web的成功设置,有大约
' U$ H" A* ?: @/ F) I( A# u9 U50%的工作量是在域名的注册与解析方面。所以一般先注册好域名然后再做: N( v! y. B  _) Z2 l# ]
虚拟WEB设置。
8 t. l' K0 N5 n. L$ l9 O4 @0 |/ I& ~; Q' s5 X4 ~
一 、IP型虚拟主机
. p1 o( Y9 u+ a# q% t4 r: F5 [
- l1 V3 I4 v2 y2 m7 g/ SIP型虚拟主机指每一虚拟主机对应唯一的IP。可通过多个物理网卡或虚拟网口实现多IP,Solaris2.5和Windows NT都支持这种方式。, r5 _" \7 K; _% @! R( G- i& {

: ?0 W9 H. u$ ^$ `0 I两种配置多虚拟主机的方法:
$ R' m. C' j1 ?3 b/ f/ D+ C, E% J$ C9 o" E
1、为每一虚拟主机启动一个httpd进程。
7 r) q+ t+ K, R2 Z
- u; e# w2 g% `7 m6 M4 a  F下列情况下使用此方法:
* W/ u0 o* x5 z2 o1 K+ J( }* z5 t: j+ g; s
? 需考虑安全隔离问题,如两个httpd运行于不同的User、Group、Listen、ServerRoot,两者用户除通过Web相互浏览数据,无法访问其他数据。
0 p# y2 N+ R" ?1 S1 f$ c" z
" ~* \9 ~: B5 ^5 X% o# \0 S# q? 能提供足够内存和文件描述器。% q: V& Y/ a! I) [0 Z

; @) q1 N; s1 `- t  h设置方法:
# U7 i$ V& v  y) P& p9 o: Y  g" H. G4 N8 s- v* Y
为每一虚拟主机建立一个独立的httpd安装,在每一个安装路径的配置文件httpd.conf里,用Listen指令指定进程服务的IP,如:
4 r6 {& q& W. |5 j! o  d
' H* {  M- b9 R& dListen 10.68.37.10:80
) \) B' }' a# W% h
- R7 o7 f2 v; ?5 f2、为所有虚拟主机启动一个httpd进程。
! H3 y' h$ {) W7 ?4 k/ u& E& R4 m2 j5 a* V4 Q3 b6 O
下列情况下使用此方法:; o) v; @1 V& w; U0 r6 l

1 `& l: B  a7 z? 允许在虚拟主机间共享httpd配置。
. {9 G; n- [. U, t" f' P7 W4 z+ W- e9 i: M# e  Q" i8 X
? 计算机服务于大量的请求,运行多个进程使服务器性能降低成为重要考虑因素。: r$ @$ ]. e$ z' q2 E5 N* C

( y& U+ V' H0 Z% n设置方法:( r2 o) h4 E5 H) T1 Q: `( [3 T

6 v, v$ u, }% j在配置文件httpd.conf里,用VirtualHost指令为每一虚拟主机设置ServerAdmin、ServerName、DocumentRoot、 ErrorLog、TransferLog或CustomLog,如:
; R( O. C" A; R3 C9 P% F% v! b- m& [- Q. J6 y
<VirtualHost www.smallco.com> #此处建议用IP4 O' L  ?+ g0 \) v. h8 F
ServerAdmin webmaster@mail.smallco.com
4 S$ [. g; P* P/ @DocumentRoot /usr/local/etc/httpd/htdocs/smallco6 W4 w4 r3 p( |, w
ServerName www.smallco.com #建议此处用域名
8 Y8 D1 t: ~8 R4 @+ bErrorLog /usr/local/etc/httpd/logs/smallco/error_log
; F) E! h9 ?: a. [& ?TransferLog /usr/local/etc/httpd/logs/smallco/access_log; v7 _  D! N- u: f* }+ o. L( P
</VirtualHost>8 G( n3 L( Y3 O- H+ J' J
% P% H! Q, f3 n! J# E
<VirtualHost www.baygroup.org> #此处建议用IP
2 Q5 @" J' a2 q5 z$ B5 AServerAdmin webmaster@mail.baygroup.org' q. E* d. G( u/ z7 w4 x
DocumentRoot /groups/baygroup/www7 K" U; y6 M  W; x/ L; I- S) `7 N
ServerName www.baygroup.org #建议此处用域名. s9 {) b( S  D  v
ErrorLog /groups/baygroup/logs/error_log
, L6 ~7 x' H* e  r: I, aTransferLog /groups/baygroup/logs/access_log
# f; X3 I% h" b% i( W/ X5 w# ?</VirtualHost> ! k- `$ R  R' t: I

, d$ U) Y' y0 u9 B& m" m! b同时要做虚拟网口或网卡的配置,在DNS也要做相应设置。9 c/ i, B; `* R1 y

+ v. |8 e: p8 t# r二 、名字型虚拟主机(Apache1.3以上版本支持). b: _# G# n6 Q3 h( p8 X
0 Z0 J% U4 E6 _
  IP型虚拟主机虽好,但不是最佳方案。它要求每一虚拟主机有一专用IP,在某些机器上难于实现。; l$ z* l2 z, i8 ]! H# v6 Z

/ l+ O8 D0 t6 {3 M. j* T0 Z名字型虚拟主机是指每一虚拟主机的名字不相同,但IP一样。它的好处是不限制虚拟主机数量,配置、使用简单,不需另外的软硬件。缺点是客户端必须支持该部分协议,最近版本的浏览器都支持,某些老版本浏览器不支持。但Apache为此提供了解决方法。) |  p! u* f+ s1 r
" P( Q6 d# X" x
设置方法:, b5 d8 Y. i' b. M
- N; H4 ^) t7 y) E& k9 O
在配置文件httpd.conf里,用NameVirtualHost指令设置虚拟主机,如:! j( [! p. B4 A0 F  {9 q

* W" l7 {# w  DNameVirtualHost 111.22.33.44
2 S% ~7 z( x" S
5 F- g+ m: J. Y3 j0 B7 G<VirtualHost 111.22.33.44> #建议此处用IP
% [  E8 T; @1 T  BServerName www.domain.tld #建议此处用域名
5 V- L. D9 @8 p$ f; C3 w0 t% {$ ADocumentRoot /web/domain
$ V* z* a6 o% _' ^</VirtualHost>  _6 V6 w$ U+ Y, m9 `
( Y5 Y( z: S. _/ Y' u
同时,在DNS定义www.domain.tld指向111.22.33.44。& c8 x% n. b* p
$ q  u% |1 o  |' O; e" A
注意:当在NameVirtualHost指令后使用IP时,任何使用IP的URL请求都是针对虚拟主机的,主服务器从不会响应一个使用IP的URL请求。
- Y  H2 X# L/ k8 {
( r1 \" K+ H1 L' g另外,有些服务器希望以多个名字被访问。例如,假设有某一IP的服务器,希望以名domain.tld、www2.domain.tld都能被访问,做法是在VirtualHost指令部分使用ServerAlias指令。如:8 \' `% _  q; P7 P; g
$ j2 P8 F  p  I1 H5 V  _- @: L
ServerAlias domain.tld *.domain.tld- B3 Z5 \; ]# H2 `' y
% _0 g0 f4 J# p% |
另附一些虚拟主机的设置实例。 / G5 a- A7 b. ^$ v

! n2 C/ y  {7 Y5 P2 s! {7 ?% ~ 2 D; j8 e9 F5 R8 |4 f/ y2 u; x
) ~! n1 K- O1 z! Z% g
 
6 U; c$ g8 F! P5 ?/ U6 N' b1 a* ?$ O! y5 }+ s) D# }$ A& |6 x. ]: U
附:虚拟主机设置实例
( ]$ C4 j9 A' Y$ S, _9 u% p; A/ {+ c. l: \) O
IP型的虚拟主机配置
: H4 H6 y2 n: j
1 I$ P  ?6 P$ v$ Z" rSetup 1: 服务器有两个IP,
% Z0 \& [; q% L& m- l
. R, ~' `5 ~4 W" }2 c111.22.33.44 server.domain.tld& R! ^& ^* C" r

- x0 h: _5 z2 i8 K1 [; y9 e7 E* R111.22.33.55 www.otherdomain.tld" c0 I: u7 b" Z1 C/ X
0 o: P; }/ P" J
www.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。
5 m# P6 B' ^: \. A: O$ ^9 ?/ m- K" L2 M
* p% o7 m+ d1 m1 \- J2 V  k3 z* J服务器配置:
0 X. H" c% k' o5 t. G0 z- S( @" T# I8 j( x9 x
...; x' y3 K% Y9 M& L+ }  y% s) O; R3 q; @
+ J4 V' N5 P) g; A( y
Port 80
* |  _% |1 c% ?: z
2 A5 ?2 ?$ `2 B) G5 y" ODocumentRoot /www/domain
! R$ U/ B2 @7 K2 t2 F! h* qServerName www.domain.tld, d( z9 b6 I5 s3 ~. ]
<VirtualHost 111.22.33.55>
5 w0 U# X6 @8 _' NDocumentRoot /www/otherdomain
; u$ Y2 X  G" }$ ^  sServerName www.otherdomain.tld5 h8 l' Q# @1 n4 q- t$ l
...& x; H8 e3 ]. X6 G
</VirtualHost>
: P% {5 }# V5 X% x' N4 m! {# }6 b" b7 ~* [; P+ }: w6 X
Setup 2: 基本同Setup1,但不设置专门的主服务器。
0 o+ J+ U. b8 T5 z7 P+ @& I$ h( |" \  Y1 U3 `6 g$ T% b5 d: b9 F
服务器配置:
( e1 i2 Z" P2 A4 [, x5 S& K( U% j, m) \6 ]" D- J% ?
...4 F+ h; L; Z4 B' u- K' p  j

/ n6 B4 A6 H# C/ lPort 80- b- J7 M" q1 m3 j

7 ^6 R2 e' ?; Y9 @( r; PServerName server.domain.tld
% K2 a. I, q5 M0 F3 i<VirtualHost 111.22.33.44>
: [! Z: Q3 ]$ \! bDocumentRoot /www/domain% o0 A+ m+ ]* w  ]
ServerName www.domain.tld
$ L9 l1 ~9 j; o3 o/ O2 ?1 w...( Q! S* `8 B6 D" A; R2 l& ?+ a
</VirtualHost>
" n* I  {, A5 ~' h- s2 @( t$ L) _( P" g) K9 }# ?
<VirtualHost 111.22.33.55>0 G: d" }0 _& W/ |9 w6 w( i
DocumentRoot /www/otherdomain
* j+ I: w6 O, y6 l' g) z- Y8 W! HServerName www.otherdomain.tld
0 y/ o" F5 S  H...
6 ^! h# q0 [6 ^5 x0 @# U</VirtualHost>) h3 {, G  k/ S' E, |

  {! l# N0 q! T! J! \; d( X这种设置只有当URL为http://server.domain.tld时才击中主服务器
7 r# x  \8 k, S0 q' e9 m0 p) ~
. l! P# r( r( X, DSetup 3: 服务器有两个IP,5 g% a. Q% u7 ~# n3 M% h5 \8 c

' ?/ f9 [3 }8 J/ E% f  D111.22.33.44 server.domain.tld
) u7 s  t/ N# s% m, k/ n111.22.33.55 www-cache.domain.tld
- z5 U4 R! D" x# C: dwww.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。
; j2 `. R, O6 D3 `' m4 ~2 O$ }+ bwww-cache.domain.tld是proxy-cache,端口是8080,Web服务器使用默认的80。
5 D# Y0 Z( |5 D/ u* ~2 E
1 S( P) N* P& t! |服务器配置: 1 V3 B' E5 h: P3 q: H' o1 L, z! P

  m8 i: {9 r2 x+ L' A, |...5 \' L. @4 Y( Q- n
( g& I& t  P0 f' J0 k7 k0 K
Port 803 `, U5 k/ v* Y* r- `  W7 X
# I2 k) T. D. S5 d8 i
Listen 111.22.33.44:806 o2 j/ a5 j# A$ Y) p: A
Listen 111.22.33.55:8080, H3 g% E8 G( v* S+ ^! K

% J1 n" s, i: J. y4 y/ }/ ^' |ServerName server.domain.tld. L( f  i5 U+ j# ]
<VirtualHost 111.22.33.44:80>3 k! s* ?/ p: A: B# Q2 Q
DocumentRoot /www/domain
7 g; C! s& N) ?, q1 VServerName www.domain.tld( P; ?7 ]& _1 b* @) _& u# C
..., p# Y# h9 U; z
</VirtualHost>
; O. u- r& J' E4 x0 e9 z+ K& |: F' S2 u% J' P6 X
<VirtualHost 111.22.33.55:8080>. M" h- o0 [4 p
ServerName www-cache.domain.tld. t7 K7 Y. N3 X/ E: l. E8 ^; L
...
, D) ^% J- ~9 {' ]  ^+ ~! v<Directory proxy:>& b4 K3 V7 F9 l/ P
order deny,allow
' g' ]( t- p: jdeny from all& t) ]# Q7 y( D
allow from 111.22.33* @- T5 E8 @8 ?( B+ d3 t( f; [4 I2 W
</Directory>" W) g1 N) W% F4 s; w; p9 m
</VirtualHost>3 T$ ]8 V" w7 c6 w8 x. j: B

# e- N/ C/ [* Y7 W9 O' I: t * c. r. a' B' z( @4 `

1 S5 |1 x1 E8 _* K2 w( V名字型虚拟主机配置) }/ x* z$ r1 \9 I* @" b& ~

1 g0 u; c6 [8 z8 RSetup 1: 服务器有一个IP,8 z, k( W9 E; G7 O3 w7 p

/ W" v# M3 T4 `) [# r! s5 p! i/ G111.22.33.44 server.domain.tld.
3 F; _/ F# c) R7 m. j/ J
& N0 E- w# v  N! Ewww.domain.tld和www.sub.domain.tld是别名(CNAMEs) 。
6 Z; c4 l: c% k# N( X- f/ r
" b5 p+ h. ^" A. _& I, ~" V服务器配置:
8 U8 D: [+ [, @" ^6 T& w" `+ j" T% g7 B$ S
...7 c; |0 a& l0 }. W2 o

9 O! @1 a9 T) I& w5 v+ e6 NPort 80- M/ h6 ]! q0 u* n2 n
3 I# u% ]- c( n# ~
ServerName server.domain.tld0 C/ V" L* B# X, K) S& n
NameVirtualHost 111.22.33.44
2 y' x8 o& l; A& R* B8 @
+ w  X+ l7 b( z<VirtualHost 111.22.33.44>
5 Z, R) p# S0 i+ ^/ s: ~9 [DocumentRoot /www/domain$ n* ^7 G3 o0 F9 T& p9 h
ServerName www.domain.tld+ \# }( u) q; o# m& Q2 ]
...; O+ v4 E5 i: j# A  T2 a- E
</VirtualHost>3 ~, \4 {4 S4 V( F
6 y4 f  y: E/ O/ W' J+ M4 @6 |
<VirtualHost 111.22.33.44>! c; u# S! E3 I* \) q+ B
DocumentRoot /www/subdomain
6 X8 ?- F  t3 ~4 ]- C2 S7 SServerName www.sub.domain.tld) o' f. c) ~# x" j! F
...
  E) F$ t' I5 E1 a  i$ W  ^</VirtualHost> , y9 [3 P3 r( _8 `2 `, v
! ^9 g8 C  P3 t8 n0 ?
若使用IP访问服务器,由于 www.domain.tld 有最高优先级,被认为是默认服务器或第一服务器。2 ]; o5 Y/ U7 n, O4 e
5 o0 F% O; }: W# u3 J
Setup 2:服务器有两个IP,! g0 B- N6 q  [. G" ?1 N3 B) O5 z
; c! I  \1 ?2 K+ n- f7 c
111.22.33.44 server1.domain.tld 用于主服务器. Z4 W" y$ b$ `* f$ i' Q0 r
111.22.33.55 server2.domain.tld 用于虚拟主机
% D, B; \2 H. I  W4 G别名www.domain.tld用于主服务器,
% @/ e9 s: _. d' i# l5 V7 F别名www.otherdomain.tld用于一个虚拟主机,$ b; X- q% j# z8 U
别名www.sub.domain.tld,*.sub.domain.tld 用于另一虚拟主机,. ^; p' X6 t/ |% |

4 F2 D" L! w+ ]1 c! t服务器配置: 4 k$ S) g) g& V

0 [3 E7 m$ ^. N- K$ q1 S# Y3 M: |...! f" _. f& A$ R1 Z6 I3 w

$ |0 M! ^4 q& r( `. A/ I4 E+ ePort 80
* ]2 @7 |& F- W' F
; `. o5 m, S: H3 OServerName www.domain.tld
# t, m' Y2 Z3 r; `5 wDocumentRoot /www/domain
* X) _+ B& g4 ?, iNameVirtualHost 111.22.33.55
" ?) _0 P6 r; Z# a% n, J<VirtualHost 111.22.33.55>0 G" u$ C2 o( C
DocumentRoot /www/otherdomain
; ]" @9 G( X& d" x' c: |6 r5 LServerName www.otherdomain.tld* \7 X8 W4 {' z: M6 m) G3 \
...( r) ]0 j. Z5 T9 l: X5 j! X
</VirtualHost>+ [4 e: P( o$ |7 H$ }. ]
! a, a/ S# G" p. r
<VirtualHost 111.22.33.55>
5 v' }/ V6 Y' U6 \DocumentRoot /www/subdomain
. X  n: N1 n" M) m  s+ Y, T% vServerName www.sub.domain.tld% j* ?% c) r7 ^5 w
ServerAlias *.sub.domain.tld( B2 g9 j! F: h1 B0 G
...! p7 e4 A: U# I
</VirtualHost> % z% o+ u  o& d' i
7 i. L6 t! E' A3 Q4 c$ K% e
混合型(IP/名字)虚拟主机配置4 q5 r  r4 m7 N

$ t3 j8 D/ {- q( O9 @Setup:服务器有三个IP,. P# h8 Z; Q$ h4 b8 A

/ l0 S8 r0 T+ ~0 ?' q111.22.33.44 server.domain.tld 用于名字型虚拟主机
, H5 I) ]" J: K1 g  d! @% _111.22.33.55 www.otherdomain1.tld 用于IP型虚拟主机7 O4 H& {; L5 \/ H8 x
111.22.33.66 www.otherdomain2.tld 用于IP型虚拟主机$ y3 m0 z7 @& x4 `/ G  R5 w
/ R4 C* p, G6 A$ ]1 w
服务器配置:
1 P- v9 H( [' W+ N...
, q* G+ E% _! k3 a" M; }0 {1 M. H+ Q+ g8 l
Port 806 c, ?" g! O) L& J  R
ServerName server.domain.tld
( w. j; L% k7 R) r! E8 i( }
2 `6 \  A% t5 ^# E1 n2 ^NameVirtualHost 111.22.33.44
, q8 b# M$ v1 N! p6 s
! m5 S/ x1 o& l<VirtualHost 111.22.33.44>/ I" @% j* I0 z) Z& J: N
DocumentRoot /www/domain( L9 d9 [7 z" v# {7 J: H/ A
ServerName www.domain.tld1 |0 C" x: r+ R- _0 H4 _
...* }+ k9 C, u, \$ O, n
</VirtualHost>' p1 R7 H: Q3 `  [  m

9 S1 q. O% e, }# a<VirtualHost 111.22.33.44>1 y$ }& a8 l8 L0 b  L0 J- p2 A
DocumentRoot /www/subdomain1) l) O' h2 {3 e; H9 U1 ^
ServerName www.sub1.domain.tld
8 s) M7 G! \4 }+ i...
9 p8 p; F3 Q3 i9 i2 C! S% ]</VirtualHost>
9 b) _  V8 W, o# S! u% F$ a% h7 g) M$ m. V4 G) u1 ^7 ^
<VirtualHost 111.22.33.44>
# _6 e+ V  g: e" J9 EDocumentRoot /www/subdomain2
% c* n/ z1 H9 w6 t" s/ fServerName www.sub2.domain.tld  ?/ z" @8 {- N
...
% e9 h! W, N, ]6 ^  P' N& \0 U$ z</VirtualHost> $ t  @; D2 ^! U1 ~/ F+ D

; g1 a3 B+ |. I) p9 K4 v; c<VirtualHost 111.22.33.55>
0 f- \$ N+ v# [" g! BDocumentRoot /www/otherdomain1) ^1 y9 M5 Z8 b7 W2 v( c
ServerName www.otherdomain1.tld+ ~" E, [, q: J
...' n$ Z3 I2 V4 ~/ O7 h
</VirtualHost>
3 [# t& @: k5 W4 g( t/ }2 H6 o3 _
<VirtualHost 111.22.33.66>  ^5 E$ l) ?9 N( v. O5 g
DocumentRoot /www/otherdomain2
2 K9 J5 }3 `: _* [ServerName www.otherdomain2.tld
1 x6 U/ q! U% y2 F# j2 n. M...
) b8 Y8 `8 _/ g( G0 S* B</VirtualHost>
; C* q5 S* i6 G5 T2 X. _
8 N8 ]1 v+ X( R% q8 g% M2 T$ s$ [端口型虚拟主机配置
4 b: c' p  }8 A* d
  M8 e, t" y* N1 C/ G0 ]Setup: 服务器有一个IP,. g! }& r! {0 {' B* p

' ?; W' ?' _* j  C& I4 M1 U111.22.33.44 www.domain.tld
6 z% j7 d, p3 k5 f& p6 b$ h( k0 _
. U$ w/ y' A4 S1 |$ o& }0 ?不需要另外的别名或IP,采用端口型虚拟主机即可设置一个配置有别于主服务器的虚拟主机。
, e* A; w; K$ P3 ~& z% I. ]
0 c. [. \' \4 F) z0 y  g服务器配置:
5 g) c+ W8 l5 k. E# |; c( H: @4 _...( [9 Z* g# J7 m7 D9 V5 G

6 t6 Y+ R3 C& ^6 s% H& MListen 80  ^" b$ q0 o& |1 s6 Z1 n* i4 u( W. `
Listen 8080
/ H7 d& [; y+ ]2 f& I' B
7 w  Y+ J1 C* i. r) oServerName www.domain.tld. U1 e, U* [" O$ w
DocumentRoot /www/domain3 [) ?: r7 l% o7 N) y% D5 q
5 P  Q4 e; P4 [6 }: T
<VirtualHost 111.22.33.44:8080>
# a( t( D: S' l5 ZDocumentRoot /www/domain2- X$ f, K0 z! z2 ?) S
...
+ U$ o" [* G) |$ Q) s8 o+ |</VirtualHost>
* q' W0 h. O  L: O, Q& v# Y6 I7 `/ _/ K5 Z+ G# l
 * H( ^" ^& q  l6 _  _* y" d: u( G! f
: u+ J9 [% \* m" r) k+ g" ]
来源:http://fengyu.china.com/Vhost.htm
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-13 10:08 , Processed in 0.017021 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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