|
虚拟主机原理
1 u/ N8 t |6 e! e
1 H; |- k" }- D5 @3 Y9 x8 M
9 w8 j: O8 v. y! B# _: P' } 虚拟主机是指在一台服务器里运行几个网站、提供WEB、FTP、Mail等服务。本文主要介绍WEB服务的虚拟主机设置。 0 B% t6 R2 w; b! o8 J6 G
虚拟主机有两种实现方法:基于IP的方法和基于主机名的方法。 ! \# |* C! a2 q3 A
基于IP的方法: ! D$ R% ^ @1 a- W- a
首先,在服务器里绑定多个IP,然后配置WEB服务器,把多个网站绑定在不同的IP上。访问不同的IP,就看到不同的网站。 2 S2 P W( e3 T* L9 O
基于主机名的方法: . \' e) }; q. V. C1 t
首先,设置多个域名的A记录,使它们解析到同一个IP地址上,即同一个服务器上。然后,在服务器上配置WEB服务端,添加多个网站,为每个网站设定一个主机名。因为HTTP协议访问请求里包含有主机名信息,当WEB服务器收到访问请求时,就可以根据不同的主机名来访问不同的网站。
; I4 g" m3 L; S, q 基本IP的方法在局域网中比较常用,基于主机名的方法在Internet中比较常用。下面以两个最常用的WEB服务器IIS和Apache为例,介绍基于主机名的虚拟主机的设置方法。 ) i, ?, y- A5 F% w- z
5 d* l5 \, E) m ]" ?设置虚拟主机的主要步骤:
* d: i' F6 s" N3 l4 R8 _) J% z1、在动态域名客户端软件里添加多个域名。这一步的目的,是让这些域名都解析到同一个服务器上。(注:公网客户端和内网专业版TrueHost客户端可添加多个域名,内网标准版不支持多域名)。
# ]$ M0 t+ [% F2 A9 b& i6 Y& c2 G$ V* Y2、在用户机器的WEB服务器(IIS、Apache等)上添加域名配置虚拟主机。 % b9 M! C( E# z4 {# [
, n" x$ M2 e0 |5 j. F; S8 [( O: _' e. }: w2 z! j
M" }" c6 @/ O
IIS虚拟主机设置
6 b; N+ |) y0 w2 U5 @7 y
+ a# A* s9 y6 i' R1、打开“控制面板”->“管理工具”->“Internet服务管理器”->“默认web站点”。 / M! T$ M1 Q! ~1 F: A) F' O+ {
2、在“默认web站点”上按鼠标右键,选择“新建”->“站点”。按“下一步”。
8 V$ n' {3 M7 n9 L8 n6 ]" l3、输入站点说明,如“站点1”。按“下一步”。 : L* K) m- ~. W" _% b8 h
4、在“站点的主机头”上输入域名,如“abc.dns0755.net”。按“下一步”。 5 _3 x1 J* Q: W- l" G
5、在路径里指定站点的根目录路径。按“下一步”。 ) D' J, J" p9 T9 w* b3 m8 i4 j
6、在权限里选择适当的权限。按“下一步”,即可完成。
6 n2 O K8 D* G: F; c 如果配置的是顶级域名的虚拟主机,例如在上面第4步主机头里输入“abc.com”,而同时又希望用户使用“www.abc.com”也能访问。设置步骤如下:
( x$ X: o8 Y! c8 ?1、在“Internet服务管理器”的“站点1”上按鼠标右键,选择“属性”。
( } b' }2 u' r1 A' Z7 p9 J( Q q2、在IP地址右边点击“高级”。 & i' X; ^6 j7 F& _
3、点击“添加”,输入端口号(一般用80),再输入主机头名“www.abc.com”。
5 Y( P+ ~! c0 W( N1 L5 j6 D' g; y+ ]+ f/ i( x, n. M* r
如果有多个站点要添加,请重复执行上面的步骤。 * q. a# }( `; Q7 e# D
* ?6 j8 j; U' F6 D# t+ {1 P* H$ u$ E* W) P5 F" ]( Z3 |
: k- V3 ?: g! T9 R
Apache虚拟主机设置
% k# q, a. O8 }" E, [# d9 o) }1 {$ n$ M4 z* q8 _2 @; F) \
1、打开Apache配置文件“httpd.conf”,查找“#NameVirtualHost *”,把这行前面的“#”去掉。 + \1 V3 ], d4 F
2、在“NameVirtualHost *”这行下面,增加虚拟主机站点。示例如下: . k' {3 ]- }8 u6 m
<VirtualHost *>1 W( e3 K/ x+ T/ x" \* i
ServerAdmin webmaster@comexe.cn% E& ?4 m- _) P/ \) C
DocumentRoot /export/home/dns0755
" @+ s9 N3 T5 H4 E! D$ e ServerName dns0755.net5 X+ N5 d+ ?4 ^2 n; q
ServerAlias *.dns0755.net
5 c, B! y: b y6 Y/ d ScriptAlias /cgi-bin/ /export/home/dns0755/cgi-bin/
2 K/ y/ f7 ]- g; x- b ErrorLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800"
, b* C) z9 \0 B CustomLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800" combined' p; F2 t2 g: A$ k4 c
</VirtualHost>
' ?% q) y1 c0 O v2 }9 g5 U说明:
$ Y! ~" o5 a |- ~- z8 I2 k, S, bServerAdmin webmaster@comexe.cn
2 W( b1 b8 t& v6 E% n* A8 s- J站点管理员Email地址
2 E) e/ b0 L0 aDocumentRoot /export/home/dns0755* \+ n- _; u1 X8 E; g
站点根目录 W& h0 `0 ^( r
ServerName dns0755.net9 T9 X( N# i. z6 W) x1 c7 p
站点主机名 , \7 |6 R% U8 D! O" m
ServerAlias *.dns0755.net
P. G5 u) {4 H( u6 P# b8 M+ F- j站点别名,“*”表示任意字符 / L2 L2 T" ~: _/ u* \
ScriptAlias /cgi-bin/ /export/home/dns0755/cgi-bin/
. i3 h1 S" q7 T, g& J& K3 v执行脚本文件存放路径
/ X1 R3 l; u1 \ErrorLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800". { X! Y, f: C1 c2 c
错误日志控制 8 b; N0 Z% |+ J5 o' C. z' L
CustomLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800" combined
' Z ~/ F! S M4 L/ r0 D访问日志
' Z2 T5 a7 g% ~8 `9 t3 O/usr/local/sbin/rotatelogs是日志管理程序
. P6 r2 K1 L. F2 ]+ Z/var/log/http/dns0755.log是日志文件名9 F( [# m& I* A
604800的单位是秒,这种写法表示每隔7天产生一个日志文件
" s' W! t: N9 t8 w- B$ b
" F0 W r" y1 O, ?! C, p0 R! G$ q' s8 P$ D) I) N2 {8 l
如果有多个站点要添加,请重复执行第2步操作。 |