|
虚拟主机原理3 p! F# r9 e& A9 {5 ~
t+ T/ m9 ^# V6 i
& t" N7 Q$ W. x- R$ D" i0 N 虚拟主机是指在一台服务器里运行几个网站、提供WEB、FTP、Mail等服务。本文主要介绍WEB服务的虚拟主机设置。 0 Z$ _" E$ [3 K: s* A: ~2 G% z
虚拟主机有两种实现方法:基于IP的方法和基于主机名的方法。 & K5 Z% Y) U# ~# x2 ?* p( I$ ]6 h# F
基于IP的方法: + m6 y+ U+ f6 q. \. K2 u+ p
首先,在服务器里绑定多个IP,然后配置WEB服务器,把多个网站绑定在不同的IP上。访问不同的IP,就看到不同的网站。 " K' i' I( j' T5 D; B& [
基于主机名的方法: 8 C/ K& B& o- m! ^
首先,设置多个域名的A记录,使它们解析到同一个IP地址上,即同一个服务器上。然后,在服务器上配置WEB服务端,添加多个网站,为每个网站设定一个主机名。因为HTTP协议访问请求里包含有主机名信息,当WEB服务器收到访问请求时,就可以根据不同的主机名来访问不同的网站。
' p( B+ T1 m; n! X! N: w9 Y+ A 基本IP的方法在局域网中比较常用,基于主机名的方法在Internet中比较常用。下面以两个最常用的WEB服务器IIS和Apache为例,介绍基于主机名的虚拟主机的设置方法。 9 ]& `1 f' b9 [/ }9 _, p
& F" i! }, \' w+ }+ Z
设置虚拟主机的主要步骤: ' P' u' h8 A; m; F+ M0 B, \, g
1、在动态域名客户端软件里添加多个域名。这一步的目的,是让这些域名都解析到同一个服务器上。(注:公网客户端和内网专业版TrueHost客户端可添加多个域名,内网标准版不支持多域名)。 + E$ o" l( {1 {! X' H* T
2、在用户机器的WEB服务器(IIS、Apache等)上添加域名配置虚拟主机。 - B y5 `4 s, G; Y5 |2 W
( q0 {4 A D0 w7 b c2 K
" w) d& e4 `8 U3 y5 v; @. [; r: s T, Q2 A
IIS虚拟主机设置1 {* e( h5 f2 ]2 u" c/ a5 p: E5 h6 P
# U# y/ z$ z5 e) j& i. P1、打开“控制面板”->“管理工具”->“Internet服务管理器”->“默认web站点”。 ~; _" c9 h: W) u: I5 j3 ]. q
2、在“默认web站点”上按鼠标右键,选择“新建”->“站点”。按“下一步”。
* ~$ U5 k& H. {* i" @$ F3、输入站点说明,如“站点1”。按“下一步”。 % h" m; l& _3 X1 z |9 J8 r
4、在“站点的主机头”上输入域名,如“abc.dns0755.net”。按“下一步”。
+ W- x8 Z+ L; J! @& }5、在路径里指定站点的根目录路径。按“下一步”。
7 C E( E) q( V- @" l6、在权限里选择适当的权限。按“下一步”,即可完成。 ; `$ S- v. S7 Y& k8 F
如果配置的是顶级域名的虚拟主机,例如在上面第4步主机头里输入“abc.com”,而同时又希望用户使用“www.abc.com”也能访问。设置步骤如下:
: r r( X) R1 l; h' M1、在“Internet服务管理器”的“站点1”上按鼠标右键,选择“属性”。 , b6 b4 U0 P7 z9 ^4 I1 u6 J( V( @# U' i
2、在IP地址右边点击“高级”。 2 A# C8 V3 V- C, @
3、点击“添加”,输入端口号(一般用80),再输入主机头名“www.abc.com”。
: j4 e7 ] M& p9 r# {
9 t/ O# j" G* T3 m3 x1 |) a0 e1 [ 如果有多个站点要添加,请重复执行上面的步骤。
5 p2 _8 P( b3 T# H- }1 e g, M6 K
+ o2 T: h, O3 [0 f! B" M! G
" g" v9 N; _7 H c+ H% GApache虚拟主机设置
1 ]% |7 s d! l7 j9 [* w
2 t& R5 w _# k9 Z! D1、打开Apache配置文件“httpd.conf”,查找“#NameVirtualHost *”,把这行前面的“#”去掉。 0 A9 ~+ t! Z5 m( s* C' h( e5 B' f
2、在“NameVirtualHost *”这行下面,增加虚拟主机站点。示例如下:
5 }- d* j6 A8 E7 W/ Y+ A <VirtualHost *>
* b f7 N; V' G* ^4 Y+ k ServerAdmin webmaster@comexe.cn8 ]/ H% w5 t8 }, G% S: m' N
DocumentRoot /export/home/dns0755
1 }; y0 `, E0 i ServerName dns0755.net
3 A! W+ G+ [ U ServerAlias *.dns0755.net w* E8 _# [8 z9 {
ScriptAlias /cgi-bin/ /export/home/dns0755/cgi-bin/$ P8 v, e7 B6 }' d
ErrorLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800"
4 M) Q# f; t' B9 ]* t t% E2 p" f- V CustomLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800" combined
5 [6 }7 B) Y+ ~% ?5 M </VirtualHost> & u# e9 f) E( x4 u- `7 n9 s" N( j
说明:
9 e/ d6 {7 N9 P/ UServerAdmin webmaster@comexe.cn* s; o1 A; A# m8 y& ?
站点管理员Email地址 * S- w) `" W3 G3 R7 Q7 P) c
DocumentRoot /export/home/dns0755) c4 l% \" _, K' [6 h! l6 f
站点根目录
8 k. j. T) w. T$ ]( UServerName dns0755.net5 u# D, y- Q8 ~8 f+ a' Q# m/ @; s
站点主机名 + X% k' O; ]! O! X0 F, F; g
ServerAlias *.dns0755.net
$ P4 @* m' b# E+ ]: o: u站点别名,“*”表示任意字符 % L9 D2 k. F$ f* @& ?. Q
ScriptAlias /cgi-bin/ /export/home/dns0755/cgi-bin/
4 V5 P0 v+ G' G$ _- ^/ K执行脚本文件存放路径
, r9 n) |# P" D K; |) iErrorLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800"
* x, N& j! x0 E& j$ [错误日志控制
8 Y/ E& m# Q8 [/ |2 K3 ^* O( QCustomLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800" combined
$ P% Z1 h& u( z访问日志 % x( p+ b9 h1 f+ ?
/usr/local/sbin/rotatelogs是日志管理程序
4 G2 n$ ?! x! N# e5 Z' c, A/var/log/http/dns0755.log是日志文件名 l8 I! l: [: A
604800的单位是秒,这种写法表示每隔7天产生一个日志文件
1 e) c0 n' ^2 z0 K
0 z) { S& g6 f6 I5 j+ v* Y
% E5 U* R6 K& a6 J* Z; t* @ 如果有多个站点要添加,请重复执行第2步操作。 |