|
虚拟主机原理
* b( j( `: B1 v4 q+ e7 {1 M# k4 ]/ p% }6 U$ I* ?3 t
7 E: ~+ n* i( n( E
虚拟主机是指在一台服务器里运行几个网站、提供WEB、FTP、Mail等服务。本文主要介绍WEB服务的虚拟主机设置。
, Q8 Z. T5 B3 E" m) ~/ @ 虚拟主机有两种实现方法:基于IP的方法和基于主机名的方法。 ) m3 C& y: q! ]. e9 W
基于IP的方法: + C) }2 C1 d# v* D
首先,在服务器里绑定多个IP,然后配置WEB服务器,把多个网站绑定在不同的IP上。访问不同的IP,就看到不同的网站。
2 q7 F! `1 L% c6 B3 v基于主机名的方法:
, a0 w. X1 O, k6 E. |% c) }0 O( B 首先,设置多个域名的A记录,使它们解析到同一个IP地址上,即同一个服务器上。然后,在服务器上配置WEB服务端,添加多个网站,为每个网站设定一个主机名。因为HTTP协议访问请求里包含有主机名信息,当WEB服务器收到访问请求时,就可以根据不同的主机名来访问不同的网站。
' t0 R1 M, r5 ~# N9 y& k, \/ m0 k 基本IP的方法在局域网中比较常用,基于主机名的方法在Internet中比较常用。下面以两个最常用的WEB服务器IIS和Apache为例,介绍基于主机名的虚拟主机的设置方法。 " H3 `8 w$ i" B( z! X4 H- D' W
0 z1 ~3 {: D: ~3 N" t
设置虚拟主机的主要步骤:
' Z6 Z! E8 i2 L1、在动态域名客户端软件里添加多个域名。这一步的目的,是让这些域名都解析到同一个服务器上。(注:公网客户端和内网专业版TrueHost客户端可添加多个域名,内网标准版不支持多域名)。 0 V9 Q: Z8 s" _( ?; Z
2、在用户机器的WEB服务器(IIS、Apache等)上添加域名配置虚拟主机。 9 ?" y; v) X& [0 ?; U2 b% k
& q; y2 u* ~# |: [0 c- K$ s
% _ O6 e8 L& l( W! F
1 R, |+ w# u J) j1 AIIS虚拟主机设置
9 i) f" U, D! r1 Z8 E# e& F5 e' f# J3 t) T# {6 A
1、打开“控制面板”->“管理工具”->“Internet服务管理器”->“默认web站点”。 , \* o' ?% r8 R
2、在“默认web站点”上按鼠标右键,选择“新建”->“站点”。按“下一步”。 " ]0 e( |" t! N
3、输入站点说明,如“站点1”。按“下一步”。 8 b# T; X! i( g5 E# W6 U k
4、在“站点的主机头”上输入域名,如“abc.dns0755.net”。按“下一步”。
* M* K* j7 [. K* `5、在路径里指定站点的根目录路径。按“下一步”。
: Q! Z. s" R) M1 b/ c& t& y4 w) A6、在权限里选择适当的权限。按“下一步”,即可完成。 & `4 A. U. [5 m; A& ?$ w, q. ]
如果配置的是顶级域名的虚拟主机,例如在上面第4步主机头里输入“abc.com”,而同时又希望用户使用“www.abc.com”也能访问。设置步骤如下: ) C- }- C: R# C3 T: x
1、在“Internet服务管理器”的“站点1”上按鼠标右键,选择“属性”。 ; q6 B6 _. V, y$ ?% L0 k
2、在IP地址右边点击“高级”。 ) ~. P$ i, f3 f ~7 g$ _
3、点击“添加”,输入端口号(一般用80),再输入主机头名“www.abc.com”。
3 ~, C0 f+ i4 y1 }) q4 A1 w, f" K$ b% R
如果有多个站点要添加,请重复执行上面的步骤。
) O; y: N9 i, n4 Z
- H/ p4 m. q3 l
& o- x8 k8 g/ F) a( k9 [6 _' }& t- B
' I+ ^6 Z, c7 G* W( x' U0 xApache虚拟主机设置( y1 ]5 S" I8 @/ y
' g2 {1 M+ e0 t: j
1、打开Apache配置文件“httpd.conf”,查找“#NameVirtualHost *”,把这行前面的“#”去掉。 " M* f) S+ N8 I4 I( N7 G- \. W, y8 x
2、在“NameVirtualHost *”这行下面,增加虚拟主机站点。示例如下:
9 Z0 I0 c0 q6 e9 p <VirtualHost *>
5 ^+ m5 n9 X* Y6 _9 w f! p ServerAdmin webmaster@comexe.cn
7 a1 D0 ]( Q9 m0 X/ A' o" F2 } DocumentRoot /export/home/dns0755
9 |+ ^1 I, d, E2 k7 c7 E( i ServerName dns0755.net
, E; n; G- _( q& |4 J9 ?8 G ServerAlias *.dns0755.net; N. \ C0 S Z3 i7 g, c; r) r
ScriptAlias /cgi-bin/ /export/home/dns0755/cgi-bin/
0 c- h+ c3 T& o7 G' H; C8 _5 t ErrorLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800"
0 s% J D& ^4 `1 L9 }/ g8 f CustomLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800" combined, ^) u0 L+ s/ K/ i/ W. c+ t
</VirtualHost>
4 y. J+ v) D& y3 q" [说明:
+ I. R* Q: S( a' l8 zServerAdmin webmaster@comexe.cn
l0 s3 v$ \+ M5 ?' {2 n5 E! U站点管理员Email地址 9 f6 W: p7 L2 W* Y
DocumentRoot /export/home/dns0755
3 R$ T: w& e9 H5 Y9 g& {站点根目录 3 e" V4 r" I5 r8 \, q
ServerName dns0755.net
$ |/ A8 e X2 ^( c* e5 c T站点主机名 3 l2 y. N% Q* K6 G
ServerAlias *.dns0755.net/ f+ _$ X/ U4 L r; z
站点别名,“*”表示任意字符
z [5 u R- R* EScriptAlias /cgi-bin/ /export/home/dns0755/cgi-bin/$ m; ~. ?( c) ]6 R& X) [
执行脚本文件存放路径
2 e: S! L+ S' J4 Q0 O3 rErrorLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800"
5 L2 r3 k8 L2 d c8 f) r错误日志控制 / j; {' t" Y5 Y
CustomLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800" combined
4 r0 F7 f& N) S- s# `访问日志
# y5 D' l1 T- I, |2 T, \/usr/local/sbin/rotatelogs是日志管理程序# O* M4 V/ B% a7 h
/var/log/http/dns0755.log是日志文件名8 {# T! C0 b$ K& ~; t8 K( L
604800的单位是秒,这种写法表示每隔7天产生一个日志文件 " L S4 H1 m- z5 N7 P: i
6 w# N/ K, O0 [9 Q6 F; H6 r
) h% A" w) R- z6 B2 {7 [; u 如果有多个站点要添加,请重复执行第2步操作。 |