|
虚拟主机原理
4 h' @: L' V. v& P* H0 X% c4 D7 \- L* o7 Q
9 Q& u8 O7 f1 A- F' \0 L# g 虚拟主机是指在一台服务器里运行几个网站、提供WEB、FTP、Mail等服务。本文主要介绍WEB服务的虚拟主机设置。
4 e5 V9 ^4 Z2 s+ q/ e s 虚拟主机有两种实现方法:基于IP的方法和基于主机名的方法。
* \7 ]# S6 `7 L6 c2 ]8 N3 s5 w2 v基于IP的方法: & {) F0 g7 K9 z: q
首先,在服务器里绑定多个IP,然后配置WEB服务器,把多个网站绑定在不同的IP上。访问不同的IP,就看到不同的网站。 ) D! B* }* a* F+ r
基于主机名的方法:
, x+ o$ m- e# g/ z. [ 首先,设置多个域名的A记录,使它们解析到同一个IP地址上,即同一个服务器上。然后,在服务器上配置WEB服务端,添加多个网站,为每个网站设定一个主机名。因为HTTP协议访问请求里包含有主机名信息,当WEB服务器收到访问请求时,就可以根据不同的主机名来访问不同的网站。 8 c% ?* b0 T5 l6 R* [. \
基本IP的方法在局域网中比较常用,基于主机名的方法在Internet中比较常用。下面以两个最常用的WEB服务器IIS和Apache为例,介绍基于主机名的虚拟主机的设置方法。
4 D; f2 |% }' ]/ l. o- h k. |) }* W0 b, N: F: e& [
设置虚拟主机的主要步骤:
1 p" ~8 ^6 A$ Z- j( B5 ^4 Q1、在动态域名客户端软件里添加多个域名。这一步的目的,是让这些域名都解析到同一个服务器上。(注:公网客户端和内网专业版TrueHost客户端可添加多个域名,内网标准版不支持多域名)。 3 |* `& U; g' w
2、在用户机器的WEB服务器(IIS、Apache等)上添加域名配置虚拟主机。
; l4 A% |) `, \" `- H/ @) P% f
, u' A7 R8 |2 e* V# u) F2 V& k- R/ p4 [& R' }
: j- v7 O# G, Y: dIIS虚拟主机设置4 Y' \' V+ |6 c- U7 B9 N
- G y6 @# z. U/ A4 ]' g
1、打开“控制面板”->“管理工具”->“Internet服务管理器”->“默认web站点”。 : S5 z: n/ r7 X9 @# o. A: S0 u
2、在“默认web站点”上按鼠标右键,选择“新建”->“站点”。按“下一步”。 & ^7 u( r+ [; r) m' @+ Z
3、输入站点说明,如“站点1”。按“下一步”。 ; t% r& T: s* D$ \* k8 q8 d
4、在“站点的主机头”上输入域名,如“abc.dns0755.net”。按“下一步”。 * J x3 H+ X4 p. A4 h# D
5、在路径里指定站点的根目录路径。按“下一步”。 % x( _0 ]8 U3 H! [, ~' a( g1 y
6、在权限里选择适当的权限。按“下一步”,即可完成。
3 |. p2 |( K' e2 @8 d0 s0 C* X4 b 如果配置的是顶级域名的虚拟主机,例如在上面第4步主机头里输入“abc.com”,而同时又希望用户使用“www.abc.com”也能访问。设置步骤如下: 8 W! D/ {* r5 i4 {0 g
1、在“Internet服务管理器”的“站点1”上按鼠标右键,选择“属性”。
$ f* S7 }7 ]3 ]& Y5 F; s2、在IP地址右边点击“高级”。
/ L% K3 Y9 K$ |6 a3、点击“添加”,输入端口号(一般用80),再输入主机头名“www.abc.com”。 $ p, d7 w, s/ F+ a. ~8 L8 M* U
# t; z+ q& Y% I( O- z% J$ ?; J
如果有多个站点要添加,请重复执行上面的步骤。 t) ~& u' \4 }/ Z( }1 j, D' \
. }# }% T. F; l5 w8 k7 Q
* K4 B3 G- ]" G2 o- h8 J' H
* h% X2 l( V9 H4 B
Apache虚拟主机设置
" {. W. l9 k5 D/ N- Y: {# ]* c
/ y! [) J+ R+ I/ u( y1、打开Apache配置文件“httpd.conf”,查找“#NameVirtualHost *”,把这行前面的“#”去掉。
5 f' u9 A' y* W) \8 `' ~2、在“NameVirtualHost *”这行下面,增加虚拟主机站点。示例如下:
& f$ z$ F' [3 u, S& t <VirtualHost *>
) A+ x: k- n; V( [* o! |" c' P ServerAdmin webmaster@comexe.cn; V' K$ t8 g; L1 ^: T6 E1 [
DocumentRoot /export/home/dns0755 ?7 I f6 ^$ N
ServerName dns0755.net! \4 M$ d g) E/ [! i% ~
ServerAlias *.dns0755.net. Y% H0 d0 N2 @
ScriptAlias /cgi-bin/ /export/home/dns0755/cgi-bin/
0 D# l; C7 F6 h% y ErrorLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800"
4 u, z8 S/ U5 G CustomLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800" combined! D0 \+ N4 P4 |$ G3 J3 ?
</VirtualHost>
; h6 @$ z3 M0 Y; e5 F说明: $ [, ^! g" G; ?
ServerAdmin webmaster@comexe.cn
4 C& V, |5 v' P6 U4 Q* g- j; l( f/ ?6 |站点管理员Email地址 $ K$ G7 z! w G" J
DocumentRoot /export/home/dns0755, n7 ~) }6 n, J# ?0 J G- q Q
站点根目录 i9 c* T' H3 U h' }. a2 V
ServerName dns0755.net( J$ B" o& D: o+ X9 w' f+ S1 F
站点主机名 $ W' I3 T4 i- }$ v, J5 E9 d
ServerAlias *.dns0755.net
# P* y [! R' K2 p; }8 c, r# X站点别名,“*”表示任意字符
% M3 w* s- D: f. K! p( rScriptAlias /cgi-bin/ /export/home/dns0755/cgi-bin/
3 f. _; E1 h/ i# R5 h: U执行脚本文件存放路径
* I( S7 C: Z) d5 [' r/ IErrorLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800"
! M6 G+ F9 l) U, j& f$ H. h2 c错误日志控制 " Q% @$ D! l3 h
CustomLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800" combined
% r( t7 p3 I; r5 w$ p x6 {3 y访问日志 i. {6 H( e$ J$ h0 l; o; ^' Q4 M
/usr/local/sbin/rotatelogs是日志管理程序+ P. b+ `9 ^# y1 V* r* T
/var/log/http/dns0755.log是日志文件名$ q+ V, M6 b% b4 X
604800的单位是秒,这种写法表示每隔7天产生一个日志文件 % O$ i; R9 p& H8 ?2 q3 m$ }" d/ q# j! G
! h' o6 I0 V+ S% N: k5 `& _- n
s: M' K: {" q c3 J 如果有多个站点要添加,请重复执行第2步操作。 |