|
虚拟主机原理
4 Y) q' A7 g( a9 V) Z) h, d8 D. J6 V9 {9 A( u; P
; U. S( z- _' Q0 e0 [
虚拟主机是指在一台服务器里运行几个网站、提供WEB、FTP、Mail等服务。本文主要介绍WEB服务的虚拟主机设置。
4 D, |0 Q# g' [ 虚拟主机有两种实现方法:基于IP的方法和基于主机名的方法。 ( i$ A1 q/ E# u% R
基于IP的方法: $ p' o1 x" V$ b7 P B; }$ i
首先,在服务器里绑定多个IP,然后配置WEB服务器,把多个网站绑定在不同的IP上。访问不同的IP,就看到不同的网站。 / X4 Q# q: K \. |) A3 o" g9 S+ q. K
基于主机名的方法: F% X) o3 q) k: J
首先,设置多个域名的A记录,使它们解析到同一个IP地址上,即同一个服务器上。然后,在服务器上配置WEB服务端,添加多个网站,为每个网站设定一个主机名。因为HTTP协议访问请求里包含有主机名信息,当WEB服务器收到访问请求时,就可以根据不同的主机名来访问不同的网站。
! r. t2 `3 D# n W% ~- _ 基本IP的方法在局域网中比较常用,基于主机名的方法在Internet中比较常用。下面以两个最常用的WEB服务器IIS和Apache为例,介绍基于主机名的虚拟主机的设置方法。 % E* Y$ j7 E% E, H9 m& ^* l
& U4 t W- F( h* y9 J/ D设置虚拟主机的主要步骤:
3 p) R; M, F. _+ v3 F2 K; T1、在动态域名客户端软件里添加多个域名。这一步的目的,是让这些域名都解析到同一个服务器上。(注:公网客户端和内网专业版TrueHost客户端可添加多个域名,内网标准版不支持多域名)。 ! n) O& i) W" W9 W
2、在用户机器的WEB服务器(IIS、Apache等)上添加域名配置虚拟主机。
5 Y+ ]+ o2 H1 W( Y9 G& a" Y" Q2 d& L& v% H4 `! V" z7 U
' P- B7 b9 {5 G* P
2 ~/ ^, K/ G6 G1 n3 `IIS虚拟主机设置
. h8 x5 P0 f( r" Q2 s
0 v$ P, ~/ A- K: c8 O4 ?; N1、打开“控制面板”->“管理工具”->“Internet服务管理器”->“默认web站点”。
- F* i+ |- Q- _. q6 [, F' r" N2 J2、在“默认web站点”上按鼠标右键,选择“新建”->“站点”。按“下一步”。
* n4 Y+ C+ x5 P4 `3、输入站点说明,如“站点1”。按“下一步”。
6 i8 I; ]4 d5 E) X4、在“站点的主机头”上输入域名,如“abc.dns0755.net”。按“下一步”。
6 ^ w) J5 }& S; B2 H5、在路径里指定站点的根目录路径。按“下一步”。 " Z- D% e& x: E* ~* M" y
6、在权限里选择适当的权限。按“下一步”,即可完成。 5 O' V( Y3 h% ~1 V
如果配置的是顶级域名的虚拟主机,例如在上面第4步主机头里输入“abc.com”,而同时又希望用户使用“www.abc.com”也能访问。设置步骤如下:
2 q& F. p. B9 K3 G, X# i% v1、在“Internet服务管理器”的“站点1”上按鼠标右键,选择“属性”。 , f, K% m' u- v6 i H! o
2、在IP地址右边点击“高级”。
3 P# c; s: u' `) C3、点击“添加”,输入端口号(一般用80),再输入主机头名“www.abc.com”。 . W, |' C! f: q7 t4 ~7 N; X( _9 M
$ L3 |2 I' p& k; Q+ ?* P
如果有多个站点要添加,请重复执行上面的步骤。
3 B+ {6 f, t/ H. P$ m
- V5 d) f8 v, L7 e- v0 T' k
5 `7 ]$ C( L7 n: y% W$ ^: k" L2 D6 x7 f3 b+ _
Apache虚拟主机设置
3 E% |8 q! d% g' E4 F, X' m Q: j" ^7 ^4 F
1、打开Apache配置文件“httpd.conf”,查找“#NameVirtualHost *”,把这行前面的“#”去掉。 3 r6 m% D4 u6 J0 G" A& o
2、在“NameVirtualHost *”这行下面,增加虚拟主机站点。示例如下:
4 y3 Z$ p8 ]; Q! a: g <VirtualHost *>
% S0 h0 _' E* Y( M2 M' z* n ServerAdmin webmaster@comexe.cn
% A ^$ V1 |- x& r1 J# ]$ J DocumentRoot /export/home/dns0755% T7 n) V/ C# K! r' n
ServerName dns0755.net
+ N. W! ~8 }2 M/ p% N ServerAlias *.dns0755.net1 T" Q0 g! {+ Y& l5 L" H) ?" k. b
ScriptAlias /cgi-bin/ /export/home/dns0755/cgi-bin/
2 K7 R, a5 E7 h! f6 ^. T, A9 @- A ErrorLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800"
" g. [. e+ L2 W0 M( x1 G% ] CustomLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800" combined' O8 a7 _, k* [9 ~3 N, H8 ^) I6 s" G
</VirtualHost> 6 x4 n1 U& ~! ^- m
说明: / N9 i7 o" q) P" |
ServerAdmin webmaster@comexe.cn& J1 T9 T- x7 @
站点管理员Email地址
. z# f1 B, H4 O8 \! @, x( ^DocumentRoot /export/home/dns0755$ `5 J+ i, r v
站点根目录
# V8 ]" D8 k5 d$ C- \% FServerName dns0755.net8 N5 @1 \1 g7 C$ s7 Z- q
站点主机名 8 C: T4 w, b( n8 D
ServerAlias *.dns0755.net
7 v. z& C8 G2 U站点别名,“*”表示任意字符 * J# t" {" {$ a" @
ScriptAlias /cgi-bin/ /export/home/dns0755/cgi-bin/
; N! Q/ v$ b4 S9 l" `0 k/ u执行脚本文件存放路径
% g1 d$ m1 z# _ Z+ T, w: ]ErrorLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800"8 H% @$ @3 e/ x4 H* |' G5 Z: P
错误日志控制
* s" l/ m( j- d9 W5 ^2 NCustomLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800" combined- |6 C2 S2 ~- @6 M- `0 T
访问日志
7 ~# [: B1 c3 b/usr/local/sbin/rotatelogs是日志管理程序, U+ y9 Q+ c3 b4 s$ M
/var/log/http/dns0755.log是日志文件名
. q9 ]0 F: B4 S) Z s4 B604800的单位是秒,这种写法表示每隔7天产生一个日志文件
) e9 v1 n( `$ c% g4 r! R
9 q d ^8 \3 U$ U" q6 D# x" x, ~7 i+ g( N
如果有多个站点要添加,请重复执行第2步操作。 |