|
虚拟主机原理
) Q1 o7 ~ V% x; h
/ W5 D7 T: d M
& ]( G5 M2 c: z! n: q 虚拟主机是指在一台服务器里运行几个网站、提供WEB、FTP、Mail等服务。本文主要介绍WEB服务的虚拟主机设置。 2 M2 L" i) @; Q! N
虚拟主机有两种实现方法:基于IP的方法和基于主机名的方法。 & Q, M( M5 T& }
基于IP的方法: , R0 S* \; h# u* t% M
首先,在服务器里绑定多个IP,然后配置WEB服务器,把多个网站绑定在不同的IP上。访问不同的IP,就看到不同的网站。 5 x u4 W7 }" d" L5 `
基于主机名的方法:
% R# B' x) }/ v$ |+ F 首先,设置多个域名的A记录,使它们解析到同一个IP地址上,即同一个服务器上。然后,在服务器上配置WEB服务端,添加多个网站,为每个网站设定一个主机名。因为HTTP协议访问请求里包含有主机名信息,当WEB服务器收到访问请求时,就可以根据不同的主机名来访问不同的网站。
9 H# V% ~: Y7 J$ d/ J5 R 基本IP的方法在局域网中比较常用,基于主机名的方法在Internet中比较常用。下面以两个最常用的WEB服务器IIS和Apache为例,介绍基于主机名的虚拟主机的设置方法。
5 Q/ Z1 B# N5 {4 b. k; r' X! H1 X: K# G- p# H5 P% X1 s* _ ]
设置虚拟主机的主要步骤:
9 D, N4 O2 F$ Y* t/ K+ ^" {- M2 c1、在动态域名客户端软件里添加多个域名。这一步的目的,是让这些域名都解析到同一个服务器上。(注:公网客户端和内网专业版TrueHost客户端可添加多个域名,内网标准版不支持多域名)。
# J! J. Z0 M7 C& p; ?2、在用户机器的WEB服务器(IIS、Apache等)上添加域名配置虚拟主机。 / }4 k4 Q; I' Q0 g( J8 X
& S3 f* p c. q& {; U+ k8 U3 U+ @4 j. Q& H3 d4 Q
' o# i. d6 l5 L0 p9 x
IIS虚拟主机设置* j" _4 B0 Y- d6 I8 f7 ^2 ]/ u
$ r: u) t- [1 |6 w$ }# T
1、打开“控制面板”->“管理工具”->“Internet服务管理器”->“默认web站点”。
- p' w& x& J0 y7 V+ R4 `$ D2、在“默认web站点”上按鼠标右键,选择“新建”->“站点”。按“下一步”。
2 c/ G2 A* r8 x" ^+ c) P0 F4 [# U3、输入站点说明,如“站点1”。按“下一步”。 7 f9 w( M' t- e1 B/ u1 i! T
4、在“站点的主机头”上输入域名,如“abc.dns0755.net”。按“下一步”。 - A8 M6 H/ r% }/ }: a$ g4 D
5、在路径里指定站点的根目录路径。按“下一步”。
+ y+ G; c% ^4 k* z' B' Y5 P6、在权限里选择适当的权限。按“下一步”,即可完成。
8 A9 `' ]' I9 c x( Y0 U) p 如果配置的是顶级域名的虚拟主机,例如在上面第4步主机头里输入“abc.com”,而同时又希望用户使用“www.abc.com”也能访问。设置步骤如下: * E; }. K; p" ]6 z: p2 ]
1、在“Internet服务管理器”的“站点1”上按鼠标右键,选择“属性”。 / w* O9 f. L$ Q7 ^/ y( t
2、在IP地址右边点击“高级”。 , c1 E+ g% ` d! [" D6 o2 B
3、点击“添加”,输入端口号(一般用80),再输入主机头名“www.abc.com”。 7 Q* K2 ?, a% |9 B s' p' T
- |% v, }* A7 l, ^3 ]0 H 如果有多个站点要添加,请重复执行上面的步骤。
: j% X! Y- x% k- Z5 Q. o& N
) R7 D6 d$ [: _& N4 M( @: n8 A. F7 C
, n+ x {- x8 K
Apache虚拟主机设置
7 g- H; G- x5 K4 M* Z; N v, e, a4 E' M! V# P0 t& _
1、打开Apache配置文件“httpd.conf”,查找“#NameVirtualHost *”,把这行前面的“#”去掉。 ( i" t* C! C, _: K3 s
2、在“NameVirtualHost *”这行下面,增加虚拟主机站点。示例如下: 3 ? t6 Y5 L& N& ?/ }: G' V' P
<VirtualHost *>% r1 P: }4 N& J' Z5 a
ServerAdmin webmaster@comexe.cn
1 C+ C p& j4 R DocumentRoot /export/home/dns0755
]+ A% y: C' `5 ] ServerName dns0755.net
! B) M4 o* l5 M ServerAlias *.dns0755.net t+ l4 r- o# _: S; I$ n% y" q* [
ScriptAlias /cgi-bin/ /export/home/dns0755/cgi-bin/
3 K: }6 X& ?0 t6 Z ErrorLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800"
2 U0 C' i9 X3 l7 u: f, _2 B8 {" B# s CustomLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800" combined
) U1 m9 u9 Z" p4 D- U- n </VirtualHost> ; o9 p& a8 \# W9 Q7 w4 o
说明: 8 a7 g' q# y0 Q6 A4 ~
ServerAdmin webmaster@comexe.cn- H3 ]* k0 H) A1 T% u K0 ~
站点管理员Email地址
( i& X# c4 J1 e8 j6 dDocumentRoot /export/home/dns0755
" l1 S# d: P) w1 ~/ h# z0 v. K站点根目录 7 h: g+ [9 e. g1 l3 q* o
ServerName dns0755.net, R* T x! H* ~; Y9 }! @; T) O
站点主机名
, ?: C( B2 x# c9 ^( y$ J) h8 R4 RServerAlias *.dns0755.net
8 f% H) r# R' e( X5 A# x, z站点别名,“*”表示任意字符
% k1 q& j! }- T) U# M! c' d2 EScriptAlias /cgi-bin/ /export/home/dns0755/cgi-bin/& M7 p/ z4 V* e% { N% o8 p- `# l
执行脚本文件存放路径
+ `$ b8 R( {0 F2 `+ a! i/ pErrorLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800"5 f) ^9 w9 J) N' m) [, m+ n
错误日志控制
5 g, v* @7 w# z( VCustomLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800" combined, E# L8 }6 a, P4 \
访问日志 & G* w7 A6 v6 W A
/usr/local/sbin/rotatelogs是日志管理程序
, F8 B- }' s% g9 z" g/var/log/http/dns0755.log是日志文件名: j8 S, a) [9 h/ {: I2 g: ?
604800的单位是秒,这种写法表示每隔7天产生一个日志文件 ' c8 e8 v m0 i) c7 i6 p8 ]- R
9 T5 c3 g9 K, M5 i8 i
; x$ W# H2 l2 ^0 }
如果有多个站点要添加,请重复执行第2步操作。 |