|
虚拟主机原理8 }; n- e d6 u: e6 k% L0 n w
) f7 |) m8 g* v0 f: u4 v2 k
% Z' X5 C# |8 |4 h5 w 虚拟主机是指在一台服务器里运行几个网站、提供WEB、FTP、Mail等服务。本文主要介绍WEB服务的虚拟主机设置。
; w2 M9 E+ A4 d2 l) O" J 虚拟主机有两种实现方法:基于IP的方法和基于主机名的方法。 $ W! u6 ^& o, q8 K" q, I
基于IP的方法:
& |6 z' ]6 o& m- @- k8 P 首先,在服务器里绑定多个IP,然后配置WEB服务器,把多个网站绑定在不同的IP上。访问不同的IP,就看到不同的网站。 : `5 k, B# b/ C9 R) ?1 E% A' o7 M
基于主机名的方法: 8 Z* C' h" D8 Z
首先,设置多个域名的A记录,使它们解析到同一个IP地址上,即同一个服务器上。然后,在服务器上配置WEB服务端,添加多个网站,为每个网站设定一个主机名。因为HTTP协议访问请求里包含有主机名信息,当WEB服务器收到访问请求时,就可以根据不同的主机名来访问不同的网站。 : |+ y% {# N5 w. f# j3 G- ?5 k( H" Y7 x
基本IP的方法在局域网中比较常用,基于主机名的方法在Internet中比较常用。下面以两个最常用的WEB服务器IIS和Apache为例,介绍基于主机名的虚拟主机的设置方法。
* p T; a" T$ Y1 C& v5 r* h, l' L* Z4 ~9 y, \5 ? b
设置虚拟主机的主要步骤:
# D9 S0 G K* Z% Y+ S6 }, Y1 V1、在动态域名客户端软件里添加多个域名。这一步的目的,是让这些域名都解析到同一个服务器上。(注:公网客户端和内网专业版TrueHost客户端可添加多个域名,内网标准版不支持多域名)。
# @8 ^3 ~" e3 U2、在用户机器的WEB服务器(IIS、Apache等)上添加域名配置虚拟主机。 $ e, e4 F) a$ y3 ? A
; e& Y$ N4 T1 {4 _1 ^3 m2 g/ a5 k8 J% O s6 V
; W) H$ ]& n3 w5 d% X; y
IIS虚拟主机设置4 t% r- u4 j6 \0 K5 f6 r
5 \ m, `+ i. j1 `1、打开“控制面板”->“管理工具”->“Internet服务管理器”->“默认web站点”。
+ R0 M' i. L" b2、在“默认web站点”上按鼠标右键,选择“新建”->“站点”。按“下一步”。
2 X/ n1 R7 h. A7 L* F3、输入站点说明,如“站点1”。按“下一步”。
! Y, s+ Y8 U* R8 Q' v0 T4、在“站点的主机头”上输入域名,如“abc.dns0755.net”。按“下一步”。
! D8 {7 \0 D2 a2 G: H: @+ C5、在路径里指定站点的根目录路径。按“下一步”。 / ~7 g2 {/ I% N, V
6、在权限里选择适当的权限。按“下一步”,即可完成。
& z% L1 ^) N4 s8 j2 L/ U 如果配置的是顶级域名的虚拟主机,例如在上面第4步主机头里输入“abc.com”,而同时又希望用户使用“www.abc.com”也能访问。设置步骤如下: 9 G) m0 ~9 y c8 ~
1、在“Internet服务管理器”的“站点1”上按鼠标右键,选择“属性”。 7 G- U- K# e. q; E9 p( R! x0 N
2、在IP地址右边点击“高级”。 / @# Q" f5 @3 V2 o. C7 q" d, @
3、点击“添加”,输入端口号(一般用80),再输入主机头名“www.abc.com”。 6 a2 g6 [5 Y, A7 ^# L
- W* G' z; b6 Z# |* [& J6 V
如果有多个站点要添加,请重复执行上面的步骤。 # g6 A6 a1 E$ d! J) _ M/ ^2 P
8 ]: f% w1 G) ]" b& G3 z
6 Q2 h) Q7 |/ o+ k5 A9 D6 x e
% \( V! Z3 O$ ~( Q' lApache虚拟主机设置
" u6 m- K5 } ^: D3 _' p3 N2 x8 M' L! s- w- ~8 v" F8 `7 z/ H& |
1、打开Apache配置文件“httpd.conf”,查找“#NameVirtualHost *”,把这行前面的“#”去掉。 8 O& f6 t3 v' a/ ?/ a8 |4 r' n
2、在“NameVirtualHost *”这行下面,增加虚拟主机站点。示例如下: 0 B! c: M5 ]! U3 \. z5 J) w0 N" d
<VirtualHost *>
( z' q- K9 |2 g- p) N1 s+ D! A& T3 r8 x ServerAdmin webmaster@comexe.cn
8 O; |, L1 k0 {4 b$ X9 \4 e DocumentRoot /export/home/dns0755
# P V* ~) g1 ~3 g( J* J3 w2 y ServerName dns0755.net
. S3 t5 ]3 ^1 F3 b c- P* J& G ServerAlias *.dns0755.net2 C e# H) O& `/ b7 e2 D
ScriptAlias /cgi-bin/ /export/home/dns0755/cgi-bin// i; O, a x" f
ErrorLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800"
: {) ?7 u- q5 ^) S4 s, L9 C CustomLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800" combined1 V, [" {$ I+ p, N# _' ?
</VirtualHost> . ? ~ I( p4 U3 F/ B+ F
说明:
/ w% j a' B0 C- SServerAdmin webmaster@comexe.cn8 {5 U+ e8 @1 H0 {+ C) x
站点管理员Email地址
2 [# a) W! K {( d- C$ k, }: A1 ZDocumentRoot /export/home/dns07552 n" U! Z$ a, o
站点根目录 0 n& [; P0 k5 j+ }. I8 a+ w* s
ServerName dns0755.net
* M* T+ v7 I9 P9 w; a站点主机名
. x+ R" |, x: x) B! XServerAlias *.dns0755.net) j2 ~/ D, |' ^, K# D
站点别名,“*”表示任意字符 4 W! }7 T C5 O$ \9 n! \% p
ScriptAlias /cgi-bin/ /export/home/dns0755/cgi-bin/: U w6 z: T8 V# a( x
执行脚本文件存放路径 3 v7 R& Y; u( u- W* U" U
ErrorLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800"
5 v* Q& @ L" d) H2 g. e0 \错误日志控制
/ N! Q9 @, y4 w" R, bCustomLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800" combined
9 M8 p. ?1 O1 |( G/ v+ [访问日志 ' c& Y& N$ Z; Y. B# i
/usr/local/sbin/rotatelogs是日志管理程序
' `! K0 Z2 _6 }( |/var/log/http/dns0755.log是日志文件名
$ i5 z* q8 d" r5 i, v/ C604800的单位是秒,这种写法表示每隔7天产生一个日志文件
' e% `9 e8 \5 [% L: B; @$ Q6 }, q" b- D2 V
& k) X. Y: d w7 \4 K B
如果有多个站点要添加,请重复执行第2步操作。 |