|
虚拟主机原理
- I, t- L5 f6 J7 o4 N; K: v- n* q: w9 b3 S2 ~: K1 p
9 H9 q. T0 z; t/ `
虚拟主机是指在一台服务器里运行几个网站、提供WEB、FTP、Mail等服务。本文主要介绍WEB服务的虚拟主机设置。 $ _& ~! s9 R& ~ b4 S: G
虚拟主机有两种实现方法:基于IP的方法和基于主机名的方法。 7 b% x# M1 ?$ a7 b$ p* S7 q
基于IP的方法: / ]3 v* l7 U3 r# n& `
首先,在服务器里绑定多个IP,然后配置WEB服务器,把多个网站绑定在不同的IP上。访问不同的IP,就看到不同的网站。
# [( d& |$ S; T2 l基于主机名的方法:
* {% |7 }% s& O9 M2 T 首先,设置多个域名的A记录,使它们解析到同一个IP地址上,即同一个服务器上。然后,在服务器上配置WEB服务端,添加多个网站,为每个网站设定一个主机名。因为HTTP协议访问请求里包含有主机名信息,当WEB服务器收到访问请求时,就可以根据不同的主机名来访问不同的网站。
% D5 M% p& ]! i/ f2 r z! u3 o" L) u 基本IP的方法在局域网中比较常用,基于主机名的方法在Internet中比较常用。下面以两个最常用的WEB服务器IIS和Apache为例,介绍基于主机名的虚拟主机的设置方法。 ; [: p7 e3 b8 i1 w
- P: |/ J: N7 U' O
设置虚拟主机的主要步骤: 2 p5 c% |4 R7 p3 ?& O* ^
1、在动态域名客户端软件里添加多个域名。这一步的目的,是让这些域名都解析到同一个服务器上。(注:公网客户端和内网专业版TrueHost客户端可添加多个域名,内网标准版不支持多域名)。 ) e; Z2 H: Z, T0 a5 Z
2、在用户机器的WEB服务器(IIS、Apache等)上添加域名配置虚拟主机。 n2 [6 M0 G4 C1 G- C
. V1 ^# n+ k" Z7 f
3 ~; B' I2 Z; _# {$ {- F
, H; @( K: j1 [+ A k! vIIS虚拟主机设置
. g' J7 W$ F. @$ E L! G3 C0 v
& z/ D5 u* V' y2 _* O! G1、打开“控制面板”->“管理工具”->“Internet服务管理器”->“默认web站点”。
, g* l" d7 `8 ?2 j5 [2、在“默认web站点”上按鼠标右键,选择“新建”->“站点”。按“下一步”。
# [1 e" v; ] Q7 S1 s$ ^4 p3、输入站点说明,如“站点1”。按“下一步”。
% K/ K u" v% [( ?4、在“站点的主机头”上输入域名,如“abc.dns0755.net”。按“下一步”。
* n0 h$ R" V# D* b' H' j" R6 R5、在路径里指定站点的根目录路径。按“下一步”。 ( V' @2 l$ k1 M: {
6、在权限里选择适当的权限。按“下一步”,即可完成。
+ z. [) N7 @8 Z" J7 m# ?; o" i 如果配置的是顶级域名的虚拟主机,例如在上面第4步主机头里输入“abc.com”,而同时又希望用户使用“www.abc.com”也能访问。设置步骤如下:
. j! D8 D8 h1 l( F; a. E/ i1、在“Internet服务管理器”的“站点1”上按鼠标右键,选择“属性”。 9 D: U; `9 a* `% y2 o4 B5 l3 d+ @
2、在IP地址右边点击“高级”。 ; Y1 j. C6 j, T8 y6 O7 F
3、点击“添加”,输入端口号(一般用80),再输入主机头名“www.abc.com”。
: g$ q+ L7 U: X1 R' Y' }
$ l/ j# p% e0 f/ w 如果有多个站点要添加,请重复执行上面的步骤。 6 x* c- `9 X! ~0 ~4 ~; {
2 M! p1 J' _; `( v
- [8 m4 K9 k/ _: Q8 p1 w& ^7 K
, N/ m8 z$ ^5 e, OApache虚拟主机设置
. L, R# @$ K- f5 I
( ? @; V) Z( T: j1、打开Apache配置文件“httpd.conf”,查找“#NameVirtualHost *”,把这行前面的“#”去掉。
$ V5 w6 \( U9 w: ?$ E' _& x2、在“NameVirtualHost *”这行下面,增加虚拟主机站点。示例如下:
: ~+ D" [5 ?* P) m <VirtualHost *>
3 T) [" ?9 H1 D( [ ServerAdmin webmaster@comexe.cn1 T& Z: R$ Y% U/ @: Q1 @! K
DocumentRoot /export/home/dns07555 f. z9 {) T# _
ServerName dns0755.net- K; Z- s& p( n& `8 s- H/ I, \
ServerAlias *.dns0755.net
& L' R |6 C7 T/ j4 u, Z. l1 [2 A! r ScriptAlias /cgi-bin/ /export/home/dns0755/cgi-bin/
5 J0 d2 K5 L" N; N+ [0 P5 S ErrorLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800"
2 |/ @! m5 V# Q0 x( _ CustomLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800" combined
# Q6 W% F/ J1 E: Y7 Y </VirtualHost> 5 d% U6 u+ F8 \ B1 d# h
说明:
- K6 x+ J* J) @) u: aServerAdmin webmaster@comexe.cn" a0 Y- t& n8 M2 J, E/ j) ^3 {
站点管理员Email地址
6 P2 G9 s6 B, N4 b: jDocumentRoot /export/home/dns0755" s4 P, r5 J! q8 n
站点根目录 7 o$ k6 z: v) h# ]0 o
ServerName dns0755.net( N3 C3 [+ o# D# O1 D
站点主机名 / J7 n# R4 X. u4 P
ServerAlias *.dns0755.net( X z: b& R7 j
站点别名,“*”表示任意字符
9 c4 D- C- K$ u# iScriptAlias /cgi-bin/ /export/home/dns0755/cgi-bin/2 m. ?% ^3 r: _0 | B5 e& X
执行脚本文件存放路径 ; B6 I( K3 `0 k- O
ErrorLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800"
R0 I" d* @4 s; Z* Q( Q6 s错误日志控制 / {3 f) J" L" R; k- G0 j% S$ G9 T
CustomLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800" combined
: o- E) @$ F+ ]5 m3 i b. J$ J访问日志
: S* E% ~8 ^- H. g/usr/local/sbin/rotatelogs是日志管理程序
0 z2 i1 ?# M. o" m" Q/var/log/http/dns0755.log是日志文件名
: o1 N) _5 p9 |4 _5 F604800的单位是秒,这种写法表示每隔7天产生一个日志文件
& G( B+ F5 U! X8 u4 t' {0 G6 k( T8 o I2 U/ x6 r
: A/ W D% Q" x/ Y( Q! M
如果有多个站点要添加,请重复执行第2步操作。 |