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

使用Apache Server设置虚拟WEB

[复制链接]
发表于 2003-10-12 13:37:43 | 显示全部楼层 |阅读模式
unix 平台与NT平台使用apache server的设置相同。以下重点以unix平台为例  U4 j/ H5 W  ]0 T" g) p# T; u
说明apache server的设置。另外值得注意的是,虚拟web的成功设置,有大约! x5 X' S7 u) }
50%的工作量是在域名的注册与解析方面。所以一般先注册好域名然后再做
. {( c3 g# h& o& Q/ }3 A) n( P虚拟WEB设置。
% v% K4 x9 L) w9 v$ s- T8 X; z2 [; [9 W& {3 X" \- F
一 、IP型虚拟主机, {4 v- I; p/ }" b, s! u. A& _
& F+ ~  {& ?4 t; f* R- h
IP型虚拟主机指每一虚拟主机对应唯一的IP。可通过多个物理网卡或虚拟网口实现多IP,Solaris2.5和Windows NT都支持这种方式。
: E% u9 c, x; Y6 F6 |0 g" o$ S' V6 \5 m; a; L
两种配置多虚拟主机的方法:
8 [* l6 c$ W2 X) [' ]( T/ H3 k8 i1 @2 j! n8 I% H; I$ M
1、为每一虚拟主机启动一个httpd进程。
1 H% \! V. ~  B" y% n- k6 A! O, c7 p" e
下列情况下使用此方法:# O1 y9 e) v. g9 `' _

7 T- Y7 W4 T. O. v? 需考虑安全隔离问题,如两个httpd运行于不同的User、Group、Listen、ServerRoot,两者用户除通过Web相互浏览数据,无法访问其他数据。5 N/ N/ \) f8 N! f- o

3 t- `, d0 u6 d9 z? 能提供足够内存和文件描述器。
: j' Q; N9 ?; x
+ ]( X5 q0 j, k5 x$ ~  ]% {$ B7 J设置方法:. S  b) b8 n2 m
6 B6 W* g6 o  I/ q
为每一虚拟主机建立一个独立的httpd安装,在每一个安装路径的配置文件httpd.conf里,用Listen指令指定进程服务的IP,如:# y2 j+ j1 b1 Y* C# u% I

7 e3 Y  a$ T2 |! A) qListen 10.68.37.10:80
* ~6 v) B- Y: K& [5 ^# I; g( J/ b, W6 c0 J, {  f' f) s
2、为所有虚拟主机启动一个httpd进程。
1 E9 U( P- k. U& [
# v1 G0 y7 s/ h. {  ^下列情况下使用此方法:
: I% _+ z" b  R! s& h* T9 `, k/ K% \! k- N
? 允许在虚拟主机间共享httpd配置。( Z! Z; k* v- S$ @, `& z
% F- l. \2 e5 h6 a  B
? 计算机服务于大量的请求,运行多个进程使服务器性能降低成为重要考虑因素。
/ r. x  E: B% e8 G; T8 _( C' ~" J  G( O
设置方法:" C& U9 }- q" M: k

. K* Y( n, O" R. P, u; n$ b: F在配置文件httpd.conf里,用VirtualHost指令为每一虚拟主机设置ServerAdmin、ServerName、DocumentRoot、 ErrorLog、TransferLog或CustomLog,如:. b7 w; U6 A! F

/ ^$ n1 ]0 ?* X% A4 c+ X& r; x<VirtualHost www.smallco.com> #此处建议用IP
9 C* c! f+ y8 v. ^9 F4 q+ ?ServerAdmin webmaster@mail.smallco.com
+ C( h; \/ `9 f- x+ G4 L8 {DocumentRoot /usr/local/etc/httpd/htdocs/smallco: a2 c! D% [! t% P* g% v# s; D
ServerName www.smallco.com #建议此处用域名
8 `: I4 `9 V1 v9 ~ErrorLog /usr/local/etc/httpd/logs/smallco/error_log- C7 R0 ]% \1 D' N
TransferLog /usr/local/etc/httpd/logs/smallco/access_log' X7 D$ a" j8 i  \, h/ v5 g
</VirtualHost>
7 i6 ]( S! |; c) P! G, E1 M2 h0 e& L7 K# x8 i
<VirtualHost www.baygroup.org> #此处建议用IP( ?7 R( R  ~, I& m+ o8 k, ?
ServerAdmin webmaster@mail.baygroup.org
0 i% p7 N8 w5 v2 _6 kDocumentRoot /groups/baygroup/www
! T0 @3 {1 V" t5 c, j/ U8 LServerName www.baygroup.org #建议此处用域名. O$ |, c( P* H8 H% W7 L
ErrorLog /groups/baygroup/logs/error_log
' A& F* E1 O& g3 Q  [: r' TTransferLog /groups/baygroup/logs/access_log
- \" V7 V! D: ^9 s" g</VirtualHost>
; v9 a2 Z7 d+ g; [! G" X- m5 `) I/ W/ A* ~0 z5 R% c
同时要做虚拟网口或网卡的配置,在DNS也要做相应设置。6 j& G/ P  l+ ]( {, i
  l* D2 _$ |/ x" @! o
二 、名字型虚拟主机(Apache1.3以上版本支持)4 z6 k& {1 V3 u$ z
0 q5 V# V; X( J3 w  J" U# y3 v6 Y
  IP型虚拟主机虽好,但不是最佳方案。它要求每一虚拟主机有一专用IP,在某些机器上难于实现。
7 j/ W! p+ _" E' L. K; W, y8 C; t/ Q& O1 v1 Y
名字型虚拟主机是指每一虚拟主机的名字不相同,但IP一样。它的好处是不限制虚拟主机数量,配置、使用简单,不需另外的软硬件。缺点是客户端必须支持该部分协议,最近版本的浏览器都支持,某些老版本浏览器不支持。但Apache为此提供了解决方法。0 N$ Z" s' C) K

( n; D$ T0 d$ x4 D! \1 a设置方法:
2 i* |/ n9 b, E2 Q7 ~- N* n) p8 f9 H3 w& {: @8 Q; W# O
在配置文件httpd.conf里,用NameVirtualHost指令设置虚拟主机,如:# ]7 s+ l! p8 Q+ }& a( r/ ~& M3 Q

$ X& x, Q* Q) _9 W! O, YNameVirtualHost 111.22.33.44+ U; y& k5 z# j- o( d# j. K8 b& l% M( O

# f3 k, j  _; O) t* _: g<VirtualHost 111.22.33.44> #建议此处用IP3 f  Y. r# ^/ A3 o5 G$ H  X
ServerName www.domain.tld #建议此处用域名$ I+ G& I4 N3 V' E* O4 E; ?
DocumentRoot /web/domain
! ^& U9 t0 w9 }. t) {( ]</VirtualHost>
. e+ q4 S! C5 q! B5 U: P: ]8 J- d" k  x0 v
同时,在DNS定义www.domain.tld指向111.22.33.44。
- t6 D' U. y* M) [/ i( G, V2 {! P3 [  M% p; g- i; h
注意:当在NameVirtualHost指令后使用IP时,任何使用IP的URL请求都是针对虚拟主机的,主服务器从不会响应一个使用IP的URL请求。9 M9 R( q1 v5 W0 B+ F* G
& @) ^% P8 F" c$ e3 S8 C
另外,有些服务器希望以多个名字被访问。例如,假设有某一IP的服务器,希望以名domain.tld、www2.domain.tld都能被访问,做法是在VirtualHost指令部分使用ServerAlias指令。如:
1 Y% ?- v5 M! B6 \6 K5 i( r0 L  d% q# i0 t5 s: S
ServerAlias domain.tld *.domain.tld/ V3 ]. s! j: N3 g) g! e; n$ t) F
! q6 J* P# k9 \5 Q1 r
另附一些虚拟主机的设置实例。
3 a! ?: _, h  P. X$ @2 |' _
5 p/ B1 b4 G$ L* M1 u6 h& b 
9 |- z$ m3 L" s# R
& y6 G( l9 M3 L0 @ 
# X- s4 v1 ]$ a; ^8 t" m% r
$ a' j" ~* b- {# a9 h: D  X" b6 N附:虚拟主机设置实例
' M4 `3 Z4 C& Q) c6 S0 ?
. Y; C6 C" R% @5 N* xIP型的虚拟主机配置! j' P! I2 Q/ Q  l: m7 T
, _$ j" g4 C0 V: X' D
Setup 1: 服务器有两个IP,& T2 e/ {; Y0 q& b4 D" Y

1 E. ^/ `/ U) ]" S$ a4 u% U0 x1 y111.22.33.44 server.domain.tld
$ ?$ a8 a' R* g. g/ o6 w; }0 u- k
& J# D9 y. f! H  B1 q! r* X+ e111.22.33.55 www.otherdomain.tld
3 w# _, X, G! w3 K
$ f" n$ M" c- ^  Awww.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。
  v. I4 L8 M; P. t
$ C( R! B/ L4 N9 r' n4 J/ d服务器配置:2 e0 G( Y% |# ?  I

# A: c6 g1 ]5 {1 X( h: s..." P" v* N9 Z" |' ^
  U! f5 q" s( A
Port 80
: l. e; J; t! k. b2 D1 w! J% P1 E$ N, u
DocumentRoot /www/domain
4 w$ A3 s( {5 jServerName www.domain.tld
$ w- ^1 o- F- k) V! }<VirtualHost 111.22.33.55>
* @1 T  P/ u: r- d, A9 E( fDocumentRoot /www/otherdomain
& b6 K& Z/ M# K' C: vServerName www.otherdomain.tld
7 h! w- o0 `! j: m) R) J) U...
2 q6 P: \5 z6 T  N# N% q; g- B' |</VirtualHost>2 |: {& O) h6 o
; h/ G  k* l6 {! g8 k
Setup 2: 基本同Setup1,但不设置专门的主服务器。
% q, N% {+ W8 y" R
, Z0 ^/ ]; T. [3 l# E7 q服务器配置:
/ D1 H- N/ _8 Y2 c' \$ g( `  |! |2 {3 u$ p- _* @- J
...
; e. a0 G: o# _  l
7 R, o3 \: j- a% c/ F' pPort 80
7 h- a1 l8 Y4 [  ^, S+ ^, B0 B+ M3 l$ `1 f; a- X
ServerName server.domain.tld5 o! s( s9 N% @7 q
<VirtualHost 111.22.33.44>6 {* K+ |$ g9 f4 o0 `: P) s0 I7 y
DocumentRoot /www/domain
! Y* x% T$ l$ y- [) \& Z7 WServerName www.domain.tld
7 o7 J  r! s; j2 A2 z# U...( [. U# ~3 n. w5 e* l
</VirtualHost>* D' H+ w- A3 F2 y( I/ d
1 d3 E8 {/ X" r0 h+ @  \
<VirtualHost 111.22.33.55>/ L$ h8 v. [" {
DocumentRoot /www/otherdomain* g7 D4 I( W) X- r
ServerName www.otherdomain.tld; a0 s. o" }. i$ K" g7 C3 c
..." [2 M/ i3 l$ L7 B; m, z& M
</VirtualHost>
& X& Q4 I+ }' b# U1 Z* D# U. ^6 _) _
这种设置只有当URL为http://server.domain.tld时才击中主服务器
8 f! m  N' F6 e% [* W5 L& Z
6 w! k$ D% h% i* N3 q. HSetup 3: 服务器有两个IP,
  h, y  x  _$ P: F% x* T0 l! m$ g* B7 M2 x" n1 {" I& C0 i6 F# L
111.22.33.44 server.domain.tld) J: L' s! ~& [: R1 c; p* c1 d
111.22.33.55 www-cache.domain.tld/ _9 ?8 W. W) q3 j" }
www.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。
. d; p+ g  N2 ]+ ?" B* Kwww-cache.domain.tld是proxy-cache,端口是8080,Web服务器使用默认的80。
5 j' D7 `8 n6 T" I, e* R+ ~5 l
  s* p/ t. v4 [4 P) K' g服务器配置: ! t! l9 Y) @* B+ v4 P4 Y

* d" s1 z# p4 p; b- a...* [& q; [  v% z
8 |. Y* x  q6 F- V3 l, o8 P
Port 80/ V" ~: L( y; }. u+ r. L

! B4 Q/ _0 |9 B5 P' Y2 vListen 111.22.33.44:80" [+ g' I% t" o9 F8 T0 U# I$ E' J1 T
Listen 111.22.33.55:8080% v/ L* w4 H8 T4 e9 ?- y
; ~' Y+ |3 }3 U& r* R- k% b
ServerName server.domain.tld7 K1 c( G. m5 X9 Q
<VirtualHost 111.22.33.44:80>
! b/ I0 ]: u4 x7 lDocumentRoot /www/domain
$ T# p+ P+ f+ o3 M$ q+ zServerName www.domain.tld
5 c/ _7 e5 P% y# j' y  P...
6 ~: c" p3 Z( ]! Q0 ^</VirtualHost>
  k  b8 @$ }+ t6 i2 D
" d+ H; Y+ a( J1 l0 @<VirtualHost 111.22.33.55:8080>
/ @% \' \5 A2 h7 E, N) N$ lServerName www-cache.domain.tld9 t: `7 \3 e) G3 v: O9 B
...
6 Y4 T4 d' y) W) q; S<Directory proxy:>
: g, L( g! y- {2 t' dorder deny,allow' ]: d3 n2 V4 A
deny from all
/ m+ @7 s* ~; J; y% P2 ~, E( _allow from 111.22.33% N' @% J) Y" M! R2 t# C7 S
</Directory>  o, x# ?7 v. O# W* t+ }
</VirtualHost>
6 s2 `  r( k( M7 _& @
$ c# s6 p' b/ M  J- ^( d$ E ( I1 v/ B$ a" H. m

1 B5 B: L: q& g名字型虚拟主机配置6 v1 \+ b7 S9 d9 k% `% j/ b

; y8 B# Q5 B9 O  Y% xSetup 1: 服务器有一个IP,
' Q7 _2 R! c" E/ n5 f" ~
" P4 |: t+ O) c& ?' P8 K, ^111.22.33.44 server.domain.tld.
2 X3 R4 O, h+ q9 M9 o: o1 W6 h! X% i) l. i1 K! ~& o- i
www.domain.tld和www.sub.domain.tld是别名(CNAMEs) 。 ( q9 Z  G* M0 o
0 _. d( L0 @4 L, y+ I
服务器配置: / d/ [2 Q8 s* b9 X7 C
- f3 j# [) a" L% Q! S( |  p
...4 t* B3 g, `+ G5 A0 ?" @# [) A

" {+ F( m5 o/ @3 HPort 809 J2 R6 b$ G/ A/ G8 ^5 U& J7 y

! U5 h* b% [/ T9 q) ~ServerName server.domain.tld8 c0 J8 r* V. y1 r7 J
NameVirtualHost 111.22.33.44
" V2 J7 f& z1 ~2 {* P: M* a, f) Y8 B1 Y+ I
<VirtualHost 111.22.33.44>
4 O% h, K; g* p* K9 pDocumentRoot /www/domain8 @0 C% F  X) O6 h- g2 m; U
ServerName www.domain.tld
4 r& |8 |( m! `$ r( ?: i" G...
! f, k8 I9 f3 R% R</VirtualHost>4 b; P7 ?4 k0 O: A$ c5 B

0 r& |  j8 `: p1 t$ Q% z<VirtualHost 111.22.33.44>' [3 y2 [' D8 ]7 v+ D' w7 O" q( M7 E
DocumentRoot /www/subdomain
$ d$ k* a( j7 `  ^+ e7 wServerName www.sub.domain.tld
7 M5 }6 ?7 r( h9 f2 \* M...& s0 S) {$ g9 B5 H
</VirtualHost> 1 r/ o0 o: P; \( y: a

6 ]0 n& Y/ j" E# b0 S  y若使用IP访问服务器,由于 www.domain.tld 有最高优先级,被认为是默认服务器或第一服务器。# R% R5 i6 ^0 A

; B2 U  X& n: f7 CSetup 2:服务器有两个IP,
; y# P- C% R3 |' l. \- f+ L& M/ d9 O& O* R( Q! L
111.22.33.44 server1.domain.tld 用于主服务器2 N3 U! q( w9 c
111.22.33.55 server2.domain.tld 用于虚拟主机) D: i7 C4 Y3 a) m# E
别名www.domain.tld用于主服务器,1 I6 _3 H. X) R* f( R) Y
别名www.otherdomain.tld用于一个虚拟主机,
. [3 [8 ~8 v; f3 y8 p3 D别名www.sub.domain.tld,*.sub.domain.tld 用于另一虚拟主机,
6 q: l$ M6 m8 F& U* ?
+ B, n* L3 j! \服务器配置:
: ^0 ]3 Q9 e8 S0 Y3 ?4 t4 S, H  [" V) f4 R
...1 v: A7 j/ r; ~6 ~+ }
3 O9 Q8 |/ f; h5 r: j
Port 80
, d( t5 X" [. e
2 s; n- n( ~& U& p1 B& yServerName www.domain.tld
5 o3 `4 Z1 I4 ?, F6 Q. F3 m$ B& xDocumentRoot /www/domain
+ m& y0 a7 X* V1 P5 G, v; d  Y% pNameVirtualHost 111.22.33.55
  N7 w. x( O9 E  S<VirtualHost 111.22.33.55>9 S9 }$ ?$ ]8 `0 i9 r0 S
DocumentRoot /www/otherdomain
6 I) Z. `/ d  B: Y& z* o3 TServerName www.otherdomain.tld
; v) o5 R! D' t' @1 `...
& u% g! K2 I( ?</VirtualHost>5 i# [6 e" e8 j
/ }6 p; W$ P% y4 b
<VirtualHost 111.22.33.55># u9 J& ~5 Y: Y3 h  z) x2 {
DocumentRoot /www/subdomain; H; C/ X" N" p3 g
ServerName www.sub.domain.tld
' K0 Y7 r' e/ }ServerAlias *.sub.domain.tld
+ \7 P8 \+ c3 p" B5 _...8 F  s; m( U8 l
</VirtualHost> 9 t4 K. U( X. x  U- a
& e6 A) \3 ~! q
混合型(IP/名字)虚拟主机配置
! ?# A: O. X1 @0 R' H" j- r9 F" ?% X/ G
Setup:服务器有三个IP,
1 ~" P; Y2 x& Y9 H9 t5 a2 g' [/ y6 F
+ _1 \( B% G1 J* j- g( y111.22.33.44 server.domain.tld 用于名字型虚拟主机
) Y7 Y+ h/ Y6 C5 H6 I" t( G' R111.22.33.55 www.otherdomain1.tld 用于IP型虚拟主机* u( V0 g8 d* v( i4 s
111.22.33.66 www.otherdomain2.tld 用于IP型虚拟主机% a' I1 i, B7 r
: x4 X6 I* P! ?
服务器配置:
7 E1 c6 z' ^+ a2 G- g...
: _- a+ ~4 K6 I* i" V. t, |0 W
5 E) n- q( h. n+ m8 BPort 80! Q% a1 N$ Q. v! W6 {) y, J
ServerName server.domain.tld1 c. V% g0 ?/ k9 s5 w
! E/ l( @6 O; a- W" _+ }; y
NameVirtualHost 111.22.33.44. W: U6 V: ^" B

: Q9 T8 S8 x9 A' E, F5 L1 u/ K<VirtualHost 111.22.33.44>
& [$ ]( b, W% JDocumentRoot /www/domain
4 _: O+ L! I+ K$ j3 JServerName www.domain.tld
0 k2 k  R7 K1 F) c" q+ L1 n...
# e& J( l( [7 U</VirtualHost>
3 p4 H8 h( R& V" r5 n& I& ~; L
- K! [6 w" x8 j, n<VirtualHost 111.22.33.44>  ^7 I' T! N9 k, \" {
DocumentRoot /www/subdomain18 g" A7 \6 e- e7 a6 M, H" S( [, x. }
ServerName www.sub1.domain.tld/ l9 B9 r/ E8 \
...0 M3 `, \' ^% N. H# @& q
</VirtualHost> . z- |8 ^9 G% o8 U

2 p! F6 z1 Z' `5 {7 c& Y2 V5 z<VirtualHost 111.22.33.44>  {8 q+ u0 N! t( B' C' `! }+ E
DocumentRoot /www/subdomain2
) ], |" F' q3 Y) [0 M9 aServerName www.sub2.domain.tld
* t% g! j' R0 B! L" K...6 o0 w5 p9 t3 C$ |& I! }: g
</VirtualHost>
* f  F. r* D0 y  _) C+ A! L: _* ^
<VirtualHost 111.22.33.55>
- d) ]7 @7 }9 _6 NDocumentRoot /www/otherdomain1
' }/ J! u6 n' EServerName www.otherdomain1.tld; ^+ r& \2 I4 I1 g7 e8 q
...
( V$ J' P; l4 w9 u% k</VirtualHost> 3 q2 U9 \- ^" u6 ^

6 j, ]0 R2 k; }+ [1 K* R5 {# _<VirtualHost 111.22.33.66>8 ~, j6 Q9 h, j( A* C
DocumentRoot /www/otherdomain2
* W0 J, j( c- a/ A/ o& xServerName www.otherdomain2.tld8 b$ d% t8 F8 C; ^# `
...$ e2 T$ i: y. W# ]' U' \
</VirtualHost> 5 N. p! g: N9 {- @6 Y+ P
8 J# J3 M+ `" S$ L# }
端口型虚拟主机配置  Y+ j6 [: \0 w8 A
8 K7 p' D; i( E; j+ |( X9 a
Setup: 服务器有一个IP,
8 s: f* B* A. W( [% i* I3 J! j
0 t& y. p, p: H. r111.22.33.44 www.domain.tld
7 g6 A& b/ X0 K4 i! d8 r
5 f% n' T9 C" z' |  T5 s0 S: R8 C不需要另外的别名或IP,采用端口型虚拟主机即可设置一个配置有别于主服务器的虚拟主机。
4 O" s5 p% K. L1 X% }# F  j% H4 r
服务器配置: - w+ y1 `4 d7 Y3 J' Y
...5 z" {* q8 S5 d& [2 @2 U) p
& w8 }* @" m% X- S& E! q' P; }
Listen 80" Q' X6 S$ Z; V7 i# D/ ?, q
Listen 8080
3 K0 |# G) _! @3 w- x1 b9 @) W$ _
! G2 m5 m% j! B/ pServerName www.domain.tld
+ W1 H5 W  r  Y) y6 Z9 {' eDocumentRoot /www/domain8 u+ A. J* t! W1 O, O0 b
0 T8 Q: v. e( c
<VirtualHost 111.22.33.44:8080>
4 G2 P& c5 b& c' D" V2 WDocumentRoot /www/domain2
& g, ^$ h# D) W. e  g. B+ D! C...8 e! _" T3 L, X, @% l8 }
</VirtualHost>3 R) y" D- P& d/ c4 @: V8 g, Z

& F0 I2 a0 G9 o  q! o2 |/ ? 
9 H( {5 X5 e" y# m4 o+ d( D% ~& T  S- o( g& r; l+ {- o
来源:http://fengyu.china.com/Vhost.htm
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-14 01:14 , Processed in 0.017479 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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