|
虚拟主机原理1 Z' [/ |7 D& ~- ]& }( R0 F3 |, m
8 i) G% j: k- A# J2 j: R
( s, ^5 ]/ a. t$ s 虚拟主机是指在一台服务器里运行几个网站、提供WEB、FTP、Mail等服务。本文主要介绍WEB服务的虚拟主机设置。 6 D% l. e; E" ~* J
虚拟主机有两种实现方法:基于IP的方法和基于主机名的方法。
) \* A/ i2 e# ?9 N1 p基于IP的方法: o9 R! v* s+ }; O1 M9 y6 K/ T% j
首先,在服务器里绑定多个IP,然后配置WEB服务器,把多个网站绑定在不同的IP上。访问不同的IP,就看到不同的网站。
R' D+ @2 Y- g' A+ ^- ^+ k* \基于主机名的方法:
9 l! W, Z+ _! Z7 G, G 首先,设置多个域名的A记录,使它们解析到同一个IP地址上,即同一个服务器上。然后,在服务器上配置WEB服务端,添加多个网站,为每个网站设定一个主机名。因为HTTP协议访问请求里包含有主机名信息,当WEB服务器收到访问请求时,就可以根据不同的主机名来访问不同的网站。 3 l9 I) j- Q2 [' b) T- @
基本IP的方法在局域网中比较常用,基于主机名的方法在Internet中比较常用。下面以两个最常用的WEB服务器IIS和Apache为例,介绍基于主机名的虚拟主机的设置方法。
# k* ^! E2 H* e2 w& c
! Z8 y, k* I% M0 n) q6 a* J设置虚拟主机的主要步骤:
4 t5 p9 p; A7 n& h+ f3 b9 J- j1 d1、在动态域名客户端软件里添加多个域名。这一步的目的,是让这些域名都解析到同一个服务器上。(注:公网客户端和内网专业版TrueHost客户端可添加多个域名,内网标准版不支持多域名)。
# H! u' C: a" [" e2、在用户机器的WEB服务器(IIS、Apache等)上添加域名配置虚拟主机。 $ g$ T' ~2 r# a V
% g+ q3 i( @; `' t0 e5 U1 j9 J. e. Z3 r1 |$ A
$ w. [4 @1 U# @) gIIS虚拟主机设置) [- M; N1 ]( s4 ?' `
3 s( v+ f) r) v/ i; M- L1、打开“控制面板”->“管理工具”->“Internet服务管理器”->“默认web站点”。 - M( w9 m" m% g- O; w/ P
2、在“默认web站点”上按鼠标右键,选择“新建”->“站点”。按“下一步”。
# B5 q& s4 k( }3、输入站点说明,如“站点1”。按“下一步”。 6 y6 N9 @+ b0 a3 G+ X
4、在“站点的主机头”上输入域名,如“abc.dns0755.net”。按“下一步”。
8 a% u A( w# W' _5、在路径里指定站点的根目录路径。按“下一步”。 ; E( \7 Z0 d5 T) c" g: W7 m, }
6、在权限里选择适当的权限。按“下一步”,即可完成。
% p% T) n1 P6 [& j. D) l/ ~8 C# `% O 如果配置的是顶级域名的虚拟主机,例如在上面第4步主机头里输入“abc.com”,而同时又希望用户使用“www.abc.com”也能访问。设置步骤如下: 7 l8 C' d0 k9 U- W9 t6 T- q
1、在“Internet服务管理器”的“站点1”上按鼠标右键,选择“属性”。 % A( E" ?: `6 k$ \6 L6 K' d( l8 Z
2、在IP地址右边点击“高级”。 / V$ x8 K% Y* i; M. y4 p# i
3、点击“添加”,输入端口号(一般用80),再输入主机头名“www.abc.com”。
9 v3 B: w: b* R8 W4 P; n; c! ^
. ~7 e3 H9 G6 {& }8 c 如果有多个站点要添加,请重复执行上面的步骤。 8 e0 @$ Q2 X. a; `1 l
- s- H4 a, b5 x I- n# a$ n! @) X
/ [7 O4 M% J8 S3 O* i# c
9 F7 \/ ~! Y! f$ R8 [; v, EApache虚拟主机设置$ p: D) W! B4 U( f0 ~5 V
s0 M0 r6 d3 t% D( ~* L1、打开Apache配置文件“httpd.conf”,查找“#NameVirtualHost *”,把这行前面的“#”去掉。 / Q/ t' L; d# O* O$ Z- t3 }
2、在“NameVirtualHost *”这行下面,增加虚拟主机站点。示例如下: 7 V7 }4 z. u/ b% J# `0 L
<VirtualHost *>
! e6 L) b+ ^4 y& H9 A& ` ServerAdmin webmaster@comexe.cn
& K# z) A' m" i* u5 |9 b4 T( @4 Z DocumentRoot /export/home/dns0755# @" [8 f B. K* t
ServerName dns0755.net
, |/ y: R Z0 C! h: a ServerAlias *.dns0755.net
' x6 X; Y4 [4 d* J$ }* W ScriptAlias /cgi-bin/ /export/home/dns0755/cgi-bin/1 j! [) X; G- e& [. S$ \6 k, m
ErrorLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800"
- }5 b: ~: ~8 [) ~/ q2 f% i CustomLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800" combined& A3 q+ O: n4 ^- j* `4 q
</VirtualHost>
" _9 K) G6 z7 {2 M- x说明: 1 r. ]( ]# t1 Z" t$ E% `& [0 p8 i
ServerAdmin webmaster@comexe.cn
% E0 D4 `, S) n" C站点管理员Email地址
* W5 N" D) q a4 k0 ^DocumentRoot /export/home/dns0755
! r( C8 u- U- C0 O站点根目录 9 j. }2 \5 W, e" |
ServerName dns0755.net1 D) U' b7 \, |
站点主机名 4 K4 s3 P0 i( w7 \+ H2 E
ServerAlias *.dns0755.net
3 f4 j) q( c( T8 A: q- @站点别名,“*”表示任意字符
! G( q5 H9 N+ J0 o5 ]ScriptAlias /cgi-bin/ /export/home/dns0755/cgi-bin/
. P4 K( l# L8 W4 n/ [执行脚本文件存放路径
8 E* P7 b& i5 L+ H" i. SErrorLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800"
! F" B# O; e7 ? e错误日志控制
3 Y9 V: p) [3 O4 ?CustomLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800" combined
" C" W4 U# G* }: ~6 C7 k访问日志 2 q" l4 [8 M, f' u2 D
/usr/local/sbin/rotatelogs是日志管理程序& l! w4 \5 L$ M# U4 ?1 @% ^
/var/log/http/dns0755.log是日志文件名2 W/ D' j1 r# h7 _/ d0 m% i4 e
604800的单位是秒,这种写法表示每隔7天产生一个日志文件 7 ]' M0 |# S- `7 V( d; y
0 Z7 T. ~5 B2 L7 f6 y
. `- u5 @& y. M @$ h 如果有多个站点要添加,请重复执行第2步操作。 |