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

使用Apache Server设置虚拟WEB

[复制链接]
发表于 2003-10-12 13:37:43 | 显示全部楼层 |阅读模式
unix 平台与NT平台使用apache server的设置相同。以下重点以unix平台为例4 [0 j4 F$ g- o7 L
说明apache server的设置。另外值得注意的是,虚拟web的成功设置,有大约
5 B! L: d/ P7 N$ a2 Z% k+ A50%的工作量是在域名的注册与解析方面。所以一般先注册好域名然后再做
4 g7 R1 B, s5 W! k虚拟WEB设置。8 Z6 }" W6 P) |( a1 Q# {' p. r, ~

2 C: e9 }0 g! F' M4 ^: a一 、IP型虚拟主机# h; }# [. M, G' k9 Q' J
4 |' p: [8 ]( A# R7 c
IP型虚拟主机指每一虚拟主机对应唯一的IP。可通过多个物理网卡或虚拟网口实现多IP,Solaris2.5和Windows NT都支持这种方式。' j- o4 c) A( I: g+ q& Y, \+ M
% k% U& E5 a% j
两种配置多虚拟主机的方法:( c! B2 p$ f8 a8 y: L0 W' O" _
9 A: D& i( i+ l# H4 A
1、为每一虚拟主机启动一个httpd进程。% j7 }0 w9 H* ~3 C6 A0 R1 C
) f, u9 `1 w% P. g  Y
下列情况下使用此方法:
% Z! ]% `7 t' K8 o1 f+ j- L) Z5 c2 y  \
? 需考虑安全隔离问题,如两个httpd运行于不同的User、Group、Listen、ServerRoot,两者用户除通过Web相互浏览数据,无法访问其他数据。
' z2 W* Q$ c& v
5 A  y# ]' c$ j/ P5 E? 能提供足够内存和文件描述器。
5 u$ h* u" Q$ v/ j7 A
, S- P$ J( }9 h+ N设置方法:+ ?3 K& J9 I# ~
  r. V; d) U, x) s
为每一虚拟主机建立一个独立的httpd安装,在每一个安装路径的配置文件httpd.conf里,用Listen指令指定进程服务的IP,如:- k( T* y1 L" o$ z( I- G; F4 \

  }; V+ G' c. j% }  xListen 10.68.37.10:80
/ P# P; N$ w4 x0 I: y8 z3 K: ~5 h; X- [* s/ T- e$ M! V
2、为所有虚拟主机启动一个httpd进程。) I: V3 l5 e1 N1 d6 W# D

# j0 x$ w- f" E- c  a下列情况下使用此方法:
* [6 N' o+ X9 e" n4 [7 H( M7 B- d8 ?$ U
? 允许在虚拟主机间共享httpd配置。3 {. T1 u& N$ r, }% v. f: L
  N. {1 t' z: d* D% O* f
? 计算机服务于大量的请求,运行多个进程使服务器性能降低成为重要考虑因素。# ?' H2 g+ e6 B4 i9 r! D) M6 u
8 f: Q6 [( t7 m- n0 c
设置方法:
. S6 f. h- M5 W  v$ }" x( l& o; E- d& [3 [
在配置文件httpd.conf里,用VirtualHost指令为每一虚拟主机设置ServerAdmin、ServerName、DocumentRoot、 ErrorLog、TransferLog或CustomLog,如:2 Y  {& U7 I4 ?! ]. c

. J- W8 m4 M/ S6 b5 N+ F<VirtualHost www.smallco.com> #此处建议用IP. l+ ]& I5 T* a/ s: G
ServerAdmin webmaster@mail.smallco.com' t  v( G" P, \5 m# G: I
DocumentRoot /usr/local/etc/httpd/htdocs/smallco8 d+ }1 v6 E" E, T
ServerName www.smallco.com #建议此处用域名
5 S% k8 x1 F5 ]ErrorLog /usr/local/etc/httpd/logs/smallco/error_log
5 Z% c% ~0 p% Z5 ]/ }) JTransferLog /usr/local/etc/httpd/logs/smallco/access_log
% K: D: m/ W8 U( G! y</VirtualHost>8 {& O% e: v8 k6 y9 e

& v2 \( c, L) k! \: t2 ?<VirtualHost www.baygroup.org> #此处建议用IP1 C/ b9 k( ?, X: q& c2 r
ServerAdmin webmaster@mail.baygroup.org9 d: R/ H& Q3 c& Y- w
DocumentRoot /groups/baygroup/www" Y8 C& p$ a8 s( _8 q' Y4 u
ServerName www.baygroup.org #建议此处用域名$ ]; h6 C" @5 s/ H: z# [: A8 m
ErrorLog /groups/baygroup/logs/error_log* W: ?( P( L) O5 \2 g* a
TransferLog /groups/baygroup/logs/access_log- `; {# b* U/ H, l5 v( |/ G
</VirtualHost> 5 ~9 X6 i/ a/ e& r
, V# v# y- q8 h, q: \5 q9 B, ^' \
同时要做虚拟网口或网卡的配置,在DNS也要做相应设置。
/ i+ H" D+ [8 j% J, i0 a7 s& T+ W0 Y, p  k
二 、名字型虚拟主机(Apache1.3以上版本支持): z: u8 M% z. n9 Z) }

% K8 A1 |  y( x' U5 H. m  IP型虚拟主机虽好,但不是最佳方案。它要求每一虚拟主机有一专用IP,在某些机器上难于实现。
* o; p" }- A* y7 _# X% m; z
& |! h, P1 d6 \名字型虚拟主机是指每一虚拟主机的名字不相同,但IP一样。它的好处是不限制虚拟主机数量,配置、使用简单,不需另外的软硬件。缺点是客户端必须支持该部分协议,最近版本的浏览器都支持,某些老版本浏览器不支持。但Apache为此提供了解决方法。) h( b4 e/ w: T) Q

5 e3 V" e* |. |8 O! e设置方法:( n2 Y4 H( x' `0 g3 r! H

: w8 P8 g; Z$ t3 @6 l  h& c在配置文件httpd.conf里,用NameVirtualHost指令设置虚拟主机,如:
6 z% q% `1 |" U1 a3 b4 Q
2 N8 I  L3 b3 X8 n4 j) qNameVirtualHost 111.22.33.445 ]7 x+ L+ p% _% @

, n9 P* a$ P, g<VirtualHost 111.22.33.44> #建议此处用IP3 r6 Y2 B8 z5 x: ]+ _
ServerName www.domain.tld #建议此处用域名- S. l1 p2 u" J" x9 [5 [: D
DocumentRoot /web/domain
; ?) W1 D0 y+ i</VirtualHost>) z% e+ e7 s3 D7 n# v7 W
9 r+ G- R1 ^6 t3 H: X; I. h
同时,在DNS定义www.domain.tld指向111.22.33.44。
% k' @# _5 M# |) n  n2 D  _9 Q7 C7 i
注意:当在NameVirtualHost指令后使用IP时,任何使用IP的URL请求都是针对虚拟主机的,主服务器从不会响应一个使用IP的URL请求。6 _4 G; G) W+ w" O( `2 U  m

3 v2 g7 D4 G( y* N' R: g另外,有些服务器希望以多个名字被访问。例如,假设有某一IP的服务器,希望以名domain.tld、www2.domain.tld都能被访问,做法是在VirtualHost指令部分使用ServerAlias指令。如:0 P$ I/ ^0 r6 b8 h6 c
; v  }$ i5 J2 [5 S3 ]
ServerAlias domain.tld *.domain.tld
* h9 ?& }: r$ t
3 W+ _3 _$ L3 B# @) [& q( j  d另附一些虚拟主机的设置实例。 2 S/ ^, [8 N3 O7 f8 g

% Y+ Y6 A/ i1 f% K: h% x 
8 Y6 E! b9 F+ X4 m: K, X
: {) B+ w; ?6 y& \  ^% ~* g   d; t8 T: M( a- d9 S
/ k! b8 k" I5 z
附:虚拟主机设置实例
- {- a. Y8 F  H2 d/ _& _8 p
+ b) U  [9 k7 z8 x: MIP型的虚拟主机配置
# M- s1 T: K& ]  B
- L$ U+ I9 E3 x0 [Setup 1: 服务器有两个IP,& x; v, s6 C4 h, ~3 [; m3 T

5 L8 l! k. s. K- Q( ^3 K  O3 X111.22.33.44 server.domain.tld
1 ?1 t" q5 }7 Z& G8 Y' n% I  r- ]9 U- C+ |$ v% P4 Q1 r4 @* ]$ [
111.22.33.55 www.otherdomain.tld
: n% [0 E4 V1 i* H
5 B; h3 Q% y" l, y( Bwww.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。
  v$ b; V! U' @& D, y( T9 X( d3 f6 }  K6 t5 G& ?
服务器配置:6 |  m: H3 }' d' a( _/ N
5 b9 b4 e9 i# B+ d
...
3 l* q; Q2 a& ^* W1 l* @4 j
7 @, [: _! S9 p3 v+ X6 C, MPort 80
" A& M7 [" n7 `9 ^6 w
0 x- G! x/ ^' J7 ZDocumentRoot /www/domain3 T) y% _' H9 G8 B, H# S3 g
ServerName www.domain.tld
7 Z5 v' J/ u3 K4 v<VirtualHost 111.22.33.55>
3 O$ U- R1 ]4 d! e9 i% ~4 VDocumentRoot /www/otherdomain2 Q% Q7 U; `1 v# P7 |9 Y
ServerName www.otherdomain.tld4 J" r% ]4 ~. E( j- Y2 [) j9 m' l/ Z
...
/ O) c2 @1 a. o0 M1 {! F</VirtualHost>- T" i; N! ?, L6 [6 K

3 N/ `& q0 W5 w4 `/ h" lSetup 2: 基本同Setup1,但不设置专门的主服务器。
: `1 ^2 t- \/ f5 ], l7 x# @# x; B" t$ u3 l  v( T, B$ Y
服务器配置:
/ c: Y0 ~7 [8 |" X0 I4 z: c
8 ~2 k: q1 W5 K...
& f* o/ B: T/ }0 K. Z2 K2 h# Y$ j5 k
Port 80  f, w9 Y, d( ?/ F$ }, @

8 J1 q% e; t& h  yServerName server.domain.tld
$ T1 y$ Q/ U0 W3 B<VirtualHost 111.22.33.44>
  Z7 z1 @. b+ m9 T: y3 uDocumentRoot /www/domain
3 u  a0 h' H, ?. z' ]ServerName www.domain.tld
: r: a$ L! Z5 n7 N...& h, Y2 i# c" t4 A; `6 B
</VirtualHost>/ h/ }1 c" ]5 p6 b
% y4 o# k4 D2 z' g+ f1 L
<VirtualHost 111.22.33.55>1 m, v- C8 a; ]- B/ o
DocumentRoot /www/otherdomain
/ I  x- [' c2 x  W( z- mServerName www.otherdomain.tld
$ q+ }( ], M, R+ n, }. d...6 W) v6 w$ a  ^8 N3 O, R
</VirtualHost>6 ]! [: m2 H' w+ R4 x6 k

: M* K. A/ }, t8 f  Q2 ]这种设置只有当URL为http://server.domain.tld时才击中主服务器
  b+ i/ {3 N9 I) [$ d1 C
+ j3 W7 D/ v* g7 A; ^Setup 3: 服务器有两个IP,: ^  \+ l, z7 I! p9 ~* J

% m& u3 X( Z9 y/ @  u2 \111.22.33.44 server.domain.tld; e( T0 Y- s. s0 Z0 b, K4 y! E7 i
111.22.33.55 www-cache.domain.tld
( _) A1 S3 l3 n1 `7 Q8 lwww.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。
' f2 F6 s  u9 W1 t& gwww-cache.domain.tld是proxy-cache,端口是8080,Web服务器使用默认的80。
. q7 _' r6 F* a# l3 \& l5 ~7 i3 U
* Z" W* c$ q/ S# t/ C服务器配置:
! |5 H# Q. C7 _) H" A7 p0 S& H; M* ?. M9 O& u6 D
...
7 R- `4 I9 G$ |' Z- W0 [$ H) d$ Z+ v8 T/ T% C- b1 e
Port 808 Q! ^! U1 ^3 I8 a; m, {
4 E- Z) W+ V8 X# R" H; }6 y: z
Listen 111.22.33.44:80
" a, i8 g- h* Z  `  XListen 111.22.33.55:8080& F' B8 I8 {, X0 F- S' y

$ Q, L- Q6 z5 ]/ xServerName server.domain.tld" B$ w* x- @9 Q4 s; [
<VirtualHost 111.22.33.44:80>2 V" |/ I5 |4 N+ t
DocumentRoot /www/domain# ^! M& ]- d& z6 _# V8 _- L7 U& j
ServerName www.domain.tld+ ?1 l/ {4 G4 ]) Z9 b4 Z, o; O. ?
...% F7 ~2 x# P4 ~
</VirtualHost>
6 {0 w4 ], T, M3 q( d4 y9 f0 c1 X% q$ f! ]: \. f
<VirtualHost 111.22.33.55:8080>* ]2 W( r2 g' G2 Z& ?& K1 R* H# ?6 V7 A
ServerName www-cache.domain.tld* m$ M4 @; t# R  m  E! u
...2 }2 t1 R* J$ i. w1 J
<Directory proxy:># D8 W* I& j0 t1 D9 L
order deny,allow; Y6 }& x1 Q9 |# B3 x
deny from all
* h! g* Q, f, Q. A" d& pallow from 111.22.33# G" }6 _. C% P/ A
</Directory>
, t2 ~* z8 t, e3 E9 J5 ?</VirtualHost>3 Y9 Q2 K' l0 L! W  j
" o( S. b. o7 [9 @
 6 l6 z1 F8 M. n* S4 N: G: e5 M! K2 ^
& }2 |9 U' r: _% w
名字型虚拟主机配置5 F% f/ F9 Y) B7 V, M; ]& s. R3 }
+ B; e4 u) L/ I* w
Setup 1: 服务器有一个IP,
6 ~# e) u0 ^) X! i. R+ W0 x& Z' y5 K: E, N
111.22.33.44 server.domain.tld. ; z" h3 K% f4 ~% j/ {- }
, `3 Q1 ]- _7 I* G
www.domain.tld和www.sub.domain.tld是别名(CNAMEs) 。 1 X  {6 }  p. n* e
: H/ V5 g# I. G- E2 I0 b" n
服务器配置:
1 a& a; h  A5 A4 V2 A& Y
! k. l! z/ {4 I7 W- s+ R4 p# @..." X: n) b1 p* s5 I+ p' T$ k

' W' n! D% W' X- v2 zPort 801 D, B; @# u+ I# a! N) z; ~7 g
- I5 C9 E+ a1 q& a4 O; X1 V: \
ServerName server.domain.tld
, {8 B1 C3 z& Q: d( N1 l# yNameVirtualHost 111.22.33.44 ) a( |" }, ]2 |; q5 n5 v  X

/ V: M) d5 K. z! K5 o* x<VirtualHost 111.22.33.44>
! i8 K( ^) P' u. \$ k4 n$ O1 M3 eDocumentRoot /www/domain5 \1 Q* y2 ]( s- W! D# q: d2 g  d& y
ServerName www.domain.tld
: {# o+ n( o% N2 D& ]2 ~* [...
$ k. U+ f2 @$ X</VirtualHost>7 \  f& `0 u) q  @  X

6 }4 E2 r3 G  i" @2 `: I<VirtualHost 111.22.33.44>+ s  j) H3 I- I
DocumentRoot /www/subdomain2 l$ m& F7 x. j
ServerName www.sub.domain.tld
% B6 s' ]+ w/ D6 M8 B& k  g...
& R: z7 a4 z, u8 m4 m; \</VirtualHost> ( T  K8 S( U; D. y' P
; y: H5 Q- {, a7 O
若使用IP访问服务器,由于 www.domain.tld 有最高优先级,被认为是默认服务器或第一服务器。5 @! T7 i$ S  C3 e. F$ c$ i' K
8 T: B* ^$ a8 z1 T8 q# z; X
Setup 2:服务器有两个IP,+ K& L# r  ]$ t

! F6 B; }# d  J  f111.22.33.44 server1.domain.tld 用于主服务器
! U- _& I& k+ V2 n% Q8 i111.22.33.55 server2.domain.tld 用于虚拟主机
- x, q4 X4 [: K别名www.domain.tld用于主服务器,
8 r/ g; ~" r* Q+ H! i  b别名www.otherdomain.tld用于一个虚拟主机,) i# N2 V  [* X2 _* a7 p3 Z3 H
别名www.sub.domain.tld,*.sub.domain.tld 用于另一虚拟主机,; n, K# F$ c/ @. v- s

% |1 z) y" P/ [0 h1 P3 X6 X服务器配置:
' l, C5 V- Y  A1 H
( T- W) ?: C9 ~! b* y7 R& B1 ?+ R...- j: [5 @# p: u! _8 T
# w) e9 h4 b  r8 e$ v" ]
Port 80
/ O; }! Q; v  {4 h) u$ ^( g
6 W% n6 k3 B, uServerName www.domain.tld
2 S; u0 }0 q  p. ]9 bDocumentRoot /www/domain
8 t& R7 s) {3 H) D- @, @NameVirtualHost 111.22.33.55
2 s( ?7 e" r2 _& }; D3 x<VirtualHost 111.22.33.55>
  S! L' V/ `' h  G1 ?- oDocumentRoot /www/otherdomain, q% f+ y! O5 |% R3 l3 V
ServerName www.otherdomain.tld
0 u1 y5 a0 k+ `7 `+ r...  p/ k4 c5 {3 o
</VirtualHost>
+ I4 a$ {6 H  l, n
, Z# P; X( R$ Z<VirtualHost 111.22.33.55>8 M+ X7 e. G* O& ^- z& M% w/ b5 I
DocumentRoot /www/subdomain
9 Y; E  W5 D# c9 X4 E4 WServerName www.sub.domain.tld$ X4 ?3 I" ^: E/ M
ServerAlias *.sub.domain.tld, X, M% {) Y9 j7 a- @8 e! _
...
2 K3 a5 \% @& E# u; c% g</VirtualHost>
! E- ?1 a  \) @5 R, P0 T8 p" l* ]2 @) ^* z* Q
混合型(IP/名字)虚拟主机配置
/ ]( I+ W: r3 i  J4 S+ m
9 G# `7 s2 `; k- U# \8 w" v; `Setup:服务器有三个IP,
, ?3 x$ j' k3 o4 O1 b& ]0 Z* c$ M0 H, ~  J5 I% [  z
111.22.33.44 server.domain.tld 用于名字型虚拟主机
1 ^1 t; f( q/ c- h6 V$ k: N6 ~111.22.33.55 www.otherdomain1.tld 用于IP型虚拟主机0 x' |  b" D- V
111.22.33.66 www.otherdomain2.tld 用于IP型虚拟主机
6 Y4 Z1 K- ~2 W% W. T* f$ h8 Q+ j) w  {7 x' d, t
服务器配置:
# m, s* a$ u9 J7 O5 c/ q...
$ m# C6 d/ w( D' Q: U% q- T
  W7 ~+ D; p( v% F, L9 n& ePort 80& T6 s1 v- Y* W
ServerName server.domain.tld
4 l% h- j" |3 [- s& K* `: t2 P9 r
) J* {: b0 B2 J$ {1 t0 _5 RNameVirtualHost 111.22.33.44
4 X7 p( @1 w' E) g
5 x, w  O% p2 z( `  Q: _<VirtualHost 111.22.33.44>1 h# s; H' n6 A% v
DocumentRoot /www/domain! b6 d! ~+ [) O
ServerName www.domain.tld
8 S- E" e% P; T. d) k...
/ U8 A0 q6 J/ K2 M$ v# l+ T" g</VirtualHost>, y/ A# l5 W! f. S& C/ ]4 P

) r) c" J' K+ i  a0 Q<VirtualHost 111.22.33.44>
1 @" l0 B, p) `  @5 X9 O! rDocumentRoot /www/subdomain1
" ?, v) ]4 |# x! H! vServerName www.sub1.domain.tld
$ U, ~+ W! X  i...
. h5 _8 f9 k: \2 U</VirtualHost> ; _% O% P' X9 i, p

9 o5 e: ~2 u) l( ^: S<VirtualHost 111.22.33.44>" ^% J# H( O( O+ l) c9 O# m, K
DocumentRoot /www/subdomain23 j7 s; j8 {' t$ s7 ]9 S& d2 p
ServerName www.sub2.domain.tld
* y4 c+ |' @* `1 B6 a; ]6 z/ ~, C4 u...- R0 Y2 Z( C7 c5 B* L& ?
</VirtualHost> % g. U. N3 @" l- j4 z

) X- T  Z9 }# j2 b9 z& `+ {<VirtualHost 111.22.33.55>
( s' {3 I, A3 _  R; |7 N& q$ ~DocumentRoot /www/otherdomain1
" J# m# M( n6 A) |! E1 n2 bServerName www.otherdomain1.tld! n6 @, H6 n* [* ?+ \5 G6 O; ?
...+ ?  c3 k5 }4 n) g
</VirtualHost>
4 H- u& H5 E( t9 \
, v" Q! R; F- e, N) S  [: `<VirtualHost 111.22.33.66>
8 Z$ u, l7 i7 X: u5 x3 T( P' YDocumentRoot /www/otherdomain23 h" e. [  _4 S
ServerName www.otherdomain2.tld, N# x- H: D/ W& P- R  e
...9 u. D2 H3 R+ L6 |3 @: @2 Z! P
</VirtualHost> " Q2 K. O  |+ T! n7 |( A

+ U) Y$ c+ D' f- [端口型虚拟主机配置: V1 y1 h: i2 S: T! `# q

' {9 }+ S6 Y4 _4 WSetup: 服务器有一个IP,. Q# m( T' [: M6 k4 t+ Y

6 \' F" c3 ^& O7 Y! T+ z7 N111.22.33.44 www.domain.tld  x1 |" L$ v$ ~. G
" z9 `* G6 r4 v: `
不需要另外的别名或IP,采用端口型虚拟主机即可设置一个配置有别于主服务器的虚拟主机。
; ~& U! Q6 }8 ~" H; l0 g
& `" @: [" K) O+ R( t- |" m服务器配置:
. ?0 W3 ~6 j$ q; l( Q& R$ v, g...
$ ]+ y- m( ]4 L6 q. d" _! b) H, p' j! y
Listen 80
6 C7 Z7 d+ y; U7 K6 q' ZListen 8080( z4 r: h7 [2 C" p) j( U# _$ k4 v

5 V0 m  ^; E  y& s' u  ?ServerName www.domain.tld2 T0 M; y) X- ^
DocumentRoot /www/domain" v- K8 m& G3 s) ?
. u& z( {& O4 e) V2 j
<VirtualHost 111.22.33.44:8080>
- S9 O6 D# A( U7 ~, VDocumentRoot /www/domain2
, p+ _/ g/ z# ~2 v* J) }' r9 }. e...
0 T$ X0 r/ _% p# d& }' n</VirtualHost>- j& w' a$ Y& G- f8 H; A  z, _

( V" @  q; T, L4 h 
7 v* G- `/ U! G
( i% z% W3 H: D来源:http://fengyu.china.com/Vhost.htm
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-8-8 23:32 , Processed in 0.039937 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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