|
虚拟主机原理
4 z: W3 f5 D% a: t$ R) n: f2 D& L" k* b3 j! m) V& Q
# c$ @" v/ Y/ {0 u 虚拟主机是指在一台服务器里运行几个网站、提供WEB、FTP、Mail等服务。本文主要介绍WEB服务的虚拟主机设置。 4 N' b; M$ ^8 F
虚拟主机有两种实现方法:基于IP的方法和基于主机名的方法。
: Z- ? }9 e- n基于IP的方法: 0 u% V. b' x& S Y$ @
首先,在服务器里绑定多个IP,然后配置WEB服务器,把多个网站绑定在不同的IP上。访问不同的IP,就看到不同的网站。 2 e$ ^- v' \9 k T# H" k
基于主机名的方法: 5 P4 _( M3 H3 n) @9 F( [
首先,设置多个域名的A记录,使它们解析到同一个IP地址上,即同一个服务器上。然后,在服务器上配置WEB服务端,添加多个网站,为每个网站设定一个主机名。因为HTTP协议访问请求里包含有主机名信息,当WEB服务器收到访问请求时,就可以根据不同的主机名来访问不同的网站。
& Y1 q2 E9 C4 s! N) M. x9 E0 [( e 基本IP的方法在局域网中比较常用,基于主机名的方法在Internet中比较常用。下面以两个最常用的WEB服务器IIS和Apache为例,介绍基于主机名的虚拟主机的设置方法。
7 d- K, f# \ b( f
5 c; ?3 q c- y; ~$ Y" T设置虚拟主机的主要步骤: * S( P) D- ? B' { Q) y
1、在动态域名客户端软件里添加多个域名。这一步的目的,是让这些域名都解析到同一个服务器上。(注:公网客户端和内网专业版TrueHost客户端可添加多个域名,内网标准版不支持多域名)。
! S$ q, |) Z; P; N" k* l& y4 l/ `2、在用户机器的WEB服务器(IIS、Apache等)上添加域名配置虚拟主机。 * E% v+ D; p* W0 H/ o
' A8 |8 v/ L% a( S0 B' F% l
+ a! K: I4 C4 H( `$ @! a8 f" i
3 L3 c6 H5 t5 y- W; E3 \' I6 kIIS虚拟主机设置4 U* t' {0 I! d7 c
: c- F* z. z q3 a, X8 Z. G1、打开“控制面板”->“管理工具”->“Internet服务管理器”->“默认web站点”。 8 `' q8 W7 t, q+ n, i* e# t
2、在“默认web站点”上按鼠标右键,选择“新建”->“站点”。按“下一步”。 7 g/ u. ]6 y8 d0 o/ P/ e$ G
3、输入站点说明,如“站点1”。按“下一步”。 4 Z) N% j! x! J7 ^
4、在“站点的主机头”上输入域名,如“abc.dns0755.net”。按“下一步”。
( D% X1 ~ {& L2 G5、在路径里指定站点的根目录路径。按“下一步”。 ; C y# [( {# j
6、在权限里选择适当的权限。按“下一步”,即可完成。
& x8 C7 n J) Z0 l! U 如果配置的是顶级域名的虚拟主机,例如在上面第4步主机头里输入“abc.com”,而同时又希望用户使用“www.abc.com”也能访问。设置步骤如下: / e/ d& {3 h, y- U
1、在“Internet服务管理器”的“站点1”上按鼠标右键,选择“属性”。
' h7 z5 D/ V) |$ _8 n( G* A2、在IP地址右边点击“高级”。 , E, D1 v; N" Y( A( [" z. U, }
3、点击“添加”,输入端口号(一般用80),再输入主机头名“www.abc.com”。
' `4 p/ a8 }8 c% P( k
& j4 [. l+ u8 i1 M) d+ m& z- a5 G 如果有多个站点要添加,请重复执行上面的步骤。
! S$ w. y4 i* ?% D! ^" m- ?
$ O) O) b9 x7 v3 H
' @: a6 d% G7 R0 y* y% ?1 H
' d( Y4 N. r M# u3 MApache虚拟主机设置
, k/ a% A- H' c' u& R( n
7 u( }- B, i' F! ~+ P$ F2 z) Y1、打开Apache配置文件“httpd.conf”,查找“#NameVirtualHost *”,把这行前面的“#”去掉。
8 I* L9 c- w4 ]- H W9 w+ Q2、在“NameVirtualHost *”这行下面,增加虚拟主机站点。示例如下: ; i! _( I) l' _' _9 G% q
<VirtualHost *>. D1 E9 C/ T& U# R* k! C. v
ServerAdmin webmaster@comexe.cn( q. A; y* C! `7 I9 K ^
DocumentRoot /export/home/dns0755 {0 M+ \; _, ]. B3 A
ServerName dns0755.net; `6 G9 A! d n7 P9 X
ServerAlias *.dns0755.net/ H3 Y+ W7 ]9 \
ScriptAlias /cgi-bin/ /export/home/dns0755/cgi-bin/
+ R, X- {- H& ` _2 B ErrorLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800", u, u# Y% U; m1 D+ ]
CustomLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800" combined
9 S* \! M. C. Q5 U </VirtualHost> $ X/ {& Y, J5 }4 d- y6 v9 S0 L( Q
说明: & Q* p; {# C: K+ e5 y
ServerAdmin webmaster@comexe.cn$ V$ @$ s% l- l% I$ q# B% `
站点管理员Email地址
. Y; V4 M1 b: S& HDocumentRoot /export/home/dns0755$ E* O. G. F* S' K* ?- ], `4 Y
站点根目录
8 _( p6 V$ Q9 @; h0 Z( ]4 y+ v( Z: HServerName dns0755.net, ?) j/ h, y. g! U4 N) D; ^
站点主机名
: B4 ]$ I: G2 _3 \ServerAlias *.dns0755.net
) a& q! K3 V7 X, G% K3 H# M站点别名,“*”表示任意字符 K9 n1 \5 T+ X! V* v/ i
ScriptAlias /cgi-bin/ /export/home/dns0755/cgi-bin/& w, O# R5 J4 g) V; ^
执行脚本文件存放路径
$ [8 q7 g) m3 R6 _3 cErrorLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800"
+ Y6 U; O S6 a错误日志控制
4 c3 a- ]8 j- x3 [: O; u0 xCustomLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800" combined
) _7 t( R+ Q0 e2 N) j' L访问日志
& H- y# R% @1 G/usr/local/sbin/rotatelogs是日志管理程序
7 y8 \' m+ k- D% _/var/log/http/dns0755.log是日志文件名
6 ] b+ x6 y9 E! O# d604800的单位是秒,这种写法表示每隔7天产生一个日志文件
2 B/ g/ W0 q5 S: `+ [
0 C+ X0 G- H% ^0 v) t
: H9 m; b+ D: J1 a. u. {$ N! m 如果有多个站点要添加,请重复执行第2步操作。 |