论文部分内容阅读
摘要:针对大学中各学院网站无独立域名并搭载在同一台Web服务器上,提出了基于域名的APACHE Web应用服务系统的虚拟主机解决方案。通过对BIND域名应用软件及APACHE应用软件系统的配置提供虚拟主机服务,实现独立域名访问各学院网站。
关键词:虚拟主机;独立域名
中图分类号:TP302文献标识码:A文章编号:1009-3044(2008)27-1927-02
The Realization of Virtual Host of APACHE Based on Domain Names
WANG Wei-long
(The Information Centre of Beilun High School, Ningbo 315800,China)
Abstract: For the websites of all colleges of a university without the independent domain names carrying on the same Web server, the paper proposes the solution of virtual Host of the APACHE Web services application system based on domain names,which supplies the service of virtual Host by the configuration of BIND and APACHE, two application softwares, to achieve the aim of visiting the websites of the colleges by the independent domain names .
Key words: virtual host; independent domain names
1 引言
在信息技术飞速发展的时代,Internet和WWW(World Wide Web)应用得已经非常广泛,Web服务质量的是影响用户网络使用的一个主要因素。APACHE软件在Web服务器应用中非常流行。大多数WEB服务器仅仅使用APACHE软件的基本功能,对于Internet用户强大的需求,显然全面挖掘APACHE软件的功能,提高网络服务质量也成为一个关键性问题。
WEB服务器在网络应用过程中通常是几种软件配合使用,例如:APACHE、MYSQL和PROFTPD软件相结合实现各学院网站自主管理,统一发布。此种配置的WEB服务器可以实现网站的发布,但不具备各学院网站的独立域名,大部分用户在使用过程中不能直接访问,依靠超级链接进行访问。基于APACHE软件的WEB服务器可以利用软件本身的功能结合BIND软件,实现各学院站点的独立域名访问,本文的后续部分,将全面论述基于域名的APACHE软件实现虚拟主机的原理及方法。
2 基于域名的虚拟主机
虚拟主机(Virtual Host)是使用特殊的软硬件技术,把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每一台虚拟主机都具有独立的域名或IP地址,具有完整的Internet服务器(WWW、FTP、Email等)功能。其主要优点:虚拟主机之间完全独立,并可由用户自行管理。
基于域名的虚拟主机是指服务器上运行每一台虚拟主机都具有独立域名解析;运行主要原理是客户端在访问网络站点时所提交域名信息,通过DNS解析到相应的网络服务器,再由网络服务器检其HTTP头信息,由APACHE软件对HTTP头信息中的主机名进行查找,指向相对应的虚拟目录并提供主页访问服务。如图所示:
基于域名的虚拟主机主要优点是:能够实现多个网络站点共享一个IP地址;多个虚拟站点可以共享一个数据库系统,同时方便管理员对虚拟主机数据库的维护。根据其原理,实现基于域名的虚拟主机主要解决两个问题,一是设计独立域名,更改DNS服务器的配置;二是在APACHE运行的WEB服务器上配置虚拟主机。
2.1 DNS服务配置
DNS服务在整个网络的运行过程中起着非常重要的作用,能够把域名解析为独立的IP地址,也可以把IP地址解析成域名。实现独立域名支持的虚拟主机需要在DNS服务器上更改相应的配置,当客户端进行DNS请求时,DNS服务器能够把域名解析成IP地址,以达到找到该主机的目的。一台WEB服务器上放置了多个网络站点并且都在一个域下,只是在主机中所处目录不同。例如:http://wxy.xxnu.edu.cn,http://jykxxy.xxnu.edu.cn 分别属于文学院和教育科学学院。两个学院的站点同在WEB服务器主机的wxy 和jykxxy目录下。DNS服务器就是让外部访问的域名能够指向WEB服务器。如何让各学院主页根据其域名来判断其主页位置由APACHE虚拟主机来完成。要完成各学院独立域名访问,首先,确定域名的格式,各学院以其目录名称为域名的最前端,例如:“文学院”对就目录“wxy”设置域名:http://wxy.xxnu.edu.cn,其它学院类推。其次,配置DNS服务器。DNS服务器主要配置文件都在/var/named目录下,DNS服务器完成的解析过程分为正向解析和反向解析,所要实现的独立域名,需要把这些域名和服务器上的一个IP地址建立映射关系。在正向解析文件中需要更改IN记录。修改/var/named/db.xxnu
wxy.xxnu.edu.cn. IN A 192.168.0.180
jykxxy.xxnu.edu.cn. IN A 192.168.0.180
web.xxnu.edu.cn IN A 192.168.0.180
这样完成了DNS服务器的配置,可以通过nslookup软件进行测试正向解析是否正确。
#nslookup
Default server: xxnu-ns.xxnu.edu.cn
Address: 192.168.0.165
>wxy.xxnu.edu.cn
Server: xxnu-ns.xxnu.edu.cn
Address:192.168.0.165
Name: wxy.xxnu.edu.cn
Address: 192.168.0.180
2.2 WEB服务器基于名字简单虚拟主机配置
APACHE服务器的提供WEB的服务,在一台WEB服务器存在一个WEB服务主目录,在主目录下存在多个子目录,每一个子目录都是一个学院的网站主目录。通常情况下,访问一个学院的主机链接:http://web.xxnu.edu.cn/jykxxy/index.htm 。前面已经在DNS服务器上的将域名(即目录名)前置,实现独立域名,即http://jykxxy.xxnu.edu.cn,便可以访问该学院的主页。基于服务器现在目录结构现状,利用APACHE的虚拟主机功能,实现各学院独立域名访问,即各个虚拟主机共享一个APACHE服务。这种设置的优点:仅使用一个IP地址即可实现大量虚拟主机的服务。缺点:在运行CGI服务时,安全性不高;修改配置后需要重新启动apache;这种方式不适合超过千台以上的虚拟主机服务。配置步骤如下:
2.2.1 确定虚拟主机的虚拟目录
根据WEB服务器目录结构现状不需要更改虚拟目录的指向。即/ftp/jykxxy对应域名虚拟主机网址是:http://jykxxy.xxnu.edu.cn。保证虚拟目录名称与所对应的域名保持一致,优点存在两方面:一方面APACHE自动虚拟主机解析到相应的虚拟目录;另一方面便于管理员进行维护,见域名知到其对应的虚拟目录。
2.2.2 建立虚拟主机
配置虚拟主机主要修改的httpd.conf文件。主要修改Section3:Virtual Hosts部分。初始文档中并没有配置虚拟主机,需要手工修改以下各项。
NameVirtualHost 192.168.0.180
ServerAdmin root@web.xxnu.edu.cn
DocumentRoot /ftp/wxy
ServerName wxy.xxnu.eud.cn
ServerAdmin root@web.xxnu.edu.cn
DocumentRoot /ftp/jykxxy
ServerName jykxxy.xxnu.eud.cnt
ServerAdmin root@web.xxnu.edu.cn
站点管理员Email地址
DocumentRoot /home/jykxxy
教育科学学院虚拟主机站点根目录
ServerName jykxxy.xxnu.edu.cn
教育科学学院虚拟主机站点主机名(域名)
两个学院的简单虚拟主机配置已完成,其它学院配置与教育科学学院相同,只需修改目录位置和虚拟主机站点主机名。
2.2.3 WEB服务器的根目录虚拟主机配置
/ftp目录也是提供WEB服务功能。必须为/ftp目录建立一个虚拟目录。
ServerAdmin root@web.xxnu.edu.cn
DocumentRoot /ftp
ServerNameweb.xxnu.eud.cn
2.3 WEB服务器基于名字大规模虚拟主机配置
前面我们所阐述是的小数量的虚拟主机的配置。如果需要虚拟主机的数量超过一定量时(例如一万台)每个虚拟主机文件都要写到httpd.conf中,管理员的工作量增加,维护起来不方便,也很难实现。利用Apache 的URL重写功能,可以实现大规模虚拟主机的服务。
2.3.1 URL重写功能
APACHE本身具备URL重写(rewrite)功能。APACHE的重写功能,就是在apache接收到请求后,根据预先写要好的一系统列规则,对请求的URL进行规则修改,APACHE可以有效的分析URL的主机名,并查找到相应的虚拟主机,提供WEB服务。URL重写功能是一个非常复杂的过程。本文不对URL本身原理进行深放阐述,仅为应用。
2.3.2 DNS服务器配置
基本配置原理前边已讲过。例如:http://wxy.xxnu.edu.cn http://jykxxy.xxnu.edu.cn等等,各学院域名都对应同一台服务器192.168.0.180在写A记当时,可以将域名更改为*。*.xxnu.edu.cn INA192.168.0.180 即所有指向*.xxnu.edu.cn的域名均指向192.168.0.180这个web服务器。
2.3.3 apache重写功能模块配置。
修改httpd.conf 中关于rewrite部分的功能。
RewriteEngine on
RewriteMap lowercase int:tolower
打开URL重写功能
RewriteCond % !^/cgi-bin/
确定CGI程序不进行重写,保证安全性
RewriteCond $} !^web.xxnu.edu.cn(.*)$
RewriteCond $} ^[a-z0-9-] .xxnu.edu.cn(.*)$
WEB服务器主机域名web.xxnu.edu.cn不重写,其他URL名称重写
RewriteRule ^(. ) $} [C]
机器名改为小写,添加到请求的文件路径前,并继续处理
RewriteRule ^([a-z0-9])([a-z0-9])([a-z0-9]).xxnu.edu.cn([.]*)/(.*)/member/$1$2/$2$3/$1$2$3/$5
RewriteRule^([a-z0-9])([a-z0-9])([a-z0-9]*)([a-z0-9])([a-z0-9]).xxnu.edu.cn([.]*)/(.*) /member/$1$2/$4$5/$1$2$3$4$5/$7
重写请求
注意:在重写的规则中规主机名长度至少为3个字符或者数字。并且主机名中只能使用[a-z0-9]中的字母或者数字。
2.3.4 配置虚拟主机
采用URL重写的功能,目的就是为了减少对各个虚拟主机的配置,减少管理员的实际工作量。并且维护起来非常方便。
NameVirtualHost 192.168.0.180
ServerAdmin root@web.xxnu.edu.cn
DocumentRoot /ftp/*
ServerName *.xxnu.eud.cn
3 总结
基于名机的虚拟主机结合DNS服务,实现各学院的独立域名访问。技术要点主要体现在:对DNS服务器的正向域名解析配置;正确配置APAACHE的虚拟主机;有效的结合URL重定功能实现大规模虚拟主机的服务。通过服务器的正确配置和调整,方便了各学院的自主管理;WEB服务器的管理更规范化、简单化;更高效的为用户提供WEB服务。
参考文献:
[1] 虚拟主机知识[EB/OL].http://nc.tju.edu.cn/ncnew/n20.htm.
[2] 技术论坛[EB/OL].http://www.chinaunix.net.
[3] Pauul Albitz,Cricket Liu,著.雷迎春,陈世林,杨传军,译.DNS and BIND[M].3版.中国电力出版社,2001.1.
关键词:虚拟主机;独立域名
中图分类号:TP302文献标识码:A文章编号:1009-3044(2008)27-1927-02
The Realization of Virtual Host of APACHE Based on Domain Names
WANG Wei-long
(The Information Centre of Beilun High School, Ningbo 315800,China)
Abstract: For the websites of all colleges of a university without the independent domain names carrying on the same Web server, the paper proposes the solution of virtual Host of the APACHE Web services application system based on domain names,which supplies the service of virtual Host by the configuration of BIND and APACHE, two application softwares, to achieve the aim of visiting the websites of the colleges by the independent domain names .
Key words: virtual host; independent domain names
1 引言
在信息技术飞速发展的时代,Internet和WWW(World Wide Web)应用得已经非常广泛,Web服务质量的是影响用户网络使用的一个主要因素。APACHE软件在Web服务器应用中非常流行。大多数WEB服务器仅仅使用APACHE软件的基本功能,对于Internet用户强大的需求,显然全面挖掘APACHE软件的功能,提高网络服务质量也成为一个关键性问题。
WEB服务器在网络应用过程中通常是几种软件配合使用,例如:APACHE、MYSQL和PROFTPD软件相结合实现各学院网站自主管理,统一发布。此种配置的WEB服务器可以实现网站的发布,但不具备各学院网站的独立域名,大部分用户在使用过程中不能直接访问,依靠超级链接进行访问。基于APACHE软件的WEB服务器可以利用软件本身的功能结合BIND软件,实现各学院站点的独立域名访问,本文的后续部分,将全面论述基于域名的APACHE软件实现虚拟主机的原理及方法。
2 基于域名的虚拟主机
虚拟主机(Virtual Host)是使用特殊的软硬件技术,把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每一台虚拟主机都具有独立的域名或IP地址,具有完整的Internet服务器(WWW、FTP、Email等)功能。其主要优点:虚拟主机之间完全独立,并可由用户自行管理。
基于域名的虚拟主机是指服务器上运行每一台虚拟主机都具有独立域名解析;运行主要原理是客户端在访问网络站点时所提交域名信息,通过DNS解析到相应的网络服务器,再由网络服务器检其HTTP头信息,由APACHE软件对HTTP头信息中的主机名进行查找,指向相对应的虚拟目录并提供主页访问服务。如图所示:
基于域名的虚拟主机主要优点是:能够实现多个网络站点共享一个IP地址;多个虚拟站点可以共享一个数据库系统,同时方便管理员对虚拟主机数据库的维护。根据其原理,实现基于域名的虚拟主机主要解决两个问题,一是设计独立域名,更改DNS服务器的配置;二是在APACHE运行的WEB服务器上配置虚拟主机。
2.1 DNS服务配置
DNS服务在整个网络的运行过程中起着非常重要的作用,能够把域名解析为独立的IP地址,也可以把IP地址解析成域名。实现独立域名支持的虚拟主机需要在DNS服务器上更改相应的配置,当客户端进行DNS请求时,DNS服务器能够把域名解析成IP地址,以达到找到该主机的目的。一台WEB服务器上放置了多个网络站点并且都在一个域下,只是在主机中所处目录不同。例如:http://wxy.xxnu.edu.cn,http://jykxxy.xxnu.edu.cn 分别属于文学院和教育科学学院。两个学院的站点同在WEB服务器主机的wxy 和jykxxy目录下。DNS服务器就是让外部访问的域名能够指向WEB服务器。如何让各学院主页根据其域名来判断其主页位置由APACHE虚拟主机来完成。要完成各学院独立域名访问,首先,确定域名的格式,各学院以其目录名称为域名的最前端,例如:“文学院”对就目录“wxy”设置域名:http://wxy.xxnu.edu.cn,其它学院类推。其次,配置DNS服务器。DNS服务器主要配置文件都在/var/named目录下,DNS服务器完成的解析过程分为正向解析和反向解析,所要实现的独立域名,需要把这些域名和服务器上的一个IP地址建立映射关系。在正向解析文件中需要更改IN记录。修改/var/named/db.xxnu
wxy.xxnu.edu.cn. IN A 192.168.0.180
jykxxy.xxnu.edu.cn. IN A 192.168.0.180
web.xxnu.edu.cn IN A 192.168.0.180
这样完成了DNS服务器的配置,可以通过nslookup软件进行测试正向解析是否正确。
#nslookup
Default server: xxnu-ns.xxnu.edu.cn
Address: 192.168.0.165
>wxy.xxnu.edu.cn
Server: xxnu-ns.xxnu.edu.cn
Address:192.168.0.165
Name: wxy.xxnu.edu.cn
Address: 192.168.0.180
2.2 WEB服务器基于名字简单虚拟主机配置
APACHE服务器的提供WEB的服务,在一台WEB服务器存在一个WEB服务主目录,在主目录下存在多个子目录,每一个子目录都是一个学院的网站主目录。通常情况下,访问一个学院的主机链接:http://web.xxnu.edu.cn/jykxxy/index.htm 。前面已经在DNS服务器上的将域名(即目录名)前置,实现独立域名,即http://jykxxy.xxnu.edu.cn,便可以访问该学院的主页。基于服务器现在目录结构现状,利用APACHE的虚拟主机功能,实现各学院独立域名访问,即各个虚拟主机共享一个APACHE服务。这种设置的优点:仅使用一个IP地址即可实现大量虚拟主机的服务。缺点:在运行CGI服务时,安全性不高;修改配置后需要重新启动apache;这种方式不适合超过千台以上的虚拟主机服务。配置步骤如下:
2.2.1 确定虚拟主机的虚拟目录
根据WEB服务器目录结构现状不需要更改虚拟目录的指向。即/ftp/jykxxy对应域名虚拟主机网址是:http://jykxxy.xxnu.edu.cn。保证虚拟目录名称与所对应的域名保持一致,优点存在两方面:一方面APACHE自动虚拟主机解析到相应的虚拟目录;另一方面便于管理员进行维护,见域名知到其对应的虚拟目录。
2.2.2 建立虚拟主机
配置虚拟主机主要修改的httpd.conf文件。主要修改Section3:Virtual Hosts部分。初始文档中并没有配置虚拟主机,需要手工修改以下各项。
NameVirtualHost 192.168.0.180
ServerAdmin root@web.xxnu.edu.cn
DocumentRoot /ftp/wxy
ServerName wxy.xxnu.eud.cn
ServerAdmin root@web.xxnu.edu.cn
DocumentRoot /ftp/jykxxy
ServerName jykxxy.xxnu.eud.cnt
ServerAdmin root@web.xxnu.edu.cn
站点管理员Email地址
DocumentRoot /home/jykxxy
教育科学学院虚拟主机站点根目录
ServerName jykxxy.xxnu.edu.cn
教育科学学院虚拟主机站点主机名(域名)
两个学院的简单虚拟主机配置已完成,其它学院配置与教育科学学院相同,只需修改目录位置和虚拟主机站点主机名。
2.2.3 WEB服务器的根目录虚拟主机配置
/ftp目录也是提供WEB服务功能。必须为/ftp目录建立一个虚拟目录。
ServerAdmin root@web.xxnu.edu.cn
DocumentRoot /ftp
ServerNameweb.xxnu.eud.cn
2.3 WEB服务器基于名字大规模虚拟主机配置
前面我们所阐述是的小数量的虚拟主机的配置。如果需要虚拟主机的数量超过一定量时(例如一万台)每个虚拟主机文件都要写到httpd.conf中,管理员的工作量增加,维护起来不方便,也很难实现。利用Apache 的URL重写功能,可以实现大规模虚拟主机的服务。
2.3.1 URL重写功能
APACHE本身具备URL重写(rewrite)功能。APACHE的重写功能,就是在apache接收到请求后,根据预先写要好的一系统列规则,对请求的URL进行规则修改,APACHE可以有效的分析URL的主机名,并查找到相应的虚拟主机,提供WEB服务。URL重写功能是一个非常复杂的过程。本文不对URL本身原理进行深放阐述,仅为应用。
2.3.2 DNS服务器配置
基本配置原理前边已讲过。例如:http://wxy.xxnu.edu.cn http://jykxxy.xxnu.edu.cn等等,各学院域名都对应同一台服务器192.168.0.180在写A记当时,可以将域名更改为*。*.xxnu.edu.cn INA192.168.0.180 即所有指向*.xxnu.edu.cn的域名均指向192.168.0.180这个web服务器。
2.3.3 apache重写功能模块配置。
修改httpd.conf 中关于rewrite部分的功能。
RewriteEngine on
RewriteMap lowercase int:tolower
打开URL重写功能
RewriteCond % !^/cgi-bin/
确定CGI程序不进行重写,保证安全性
RewriteCond $} !^web.xxnu.edu.cn(.*)$
RewriteCond $} ^[a-z0-9-] .xxnu.edu.cn(.*)$
WEB服务器主机域名web.xxnu.edu.cn不重写,其他URL名称重写
RewriteRule ^(. ) $} [C]
机器名改为小写,添加到请求的文件路径前,并继续处理
RewriteRule ^([a-z0-9])([a-z0-9])([a-z0-9]).xxnu.edu.cn([.]*)/(.*)/member/$1$2/$2$3/$1$2$3/$5
RewriteRule^([a-z0-9])([a-z0-9])([a-z0-9]*)([a-z0-9])([a-z0-9]).xxnu.edu.cn([.]*)/(.*) /member/$1$2/$4$5/$1$2$3$4$5/$7
重写请求
注意:在重写的规则中规主机名长度至少为3个字符或者数字。并且主机名中只能使用[a-z0-9]中的字母或者数字。
2.3.4 配置虚拟主机
采用URL重写的功能,目的就是为了减少对各个虚拟主机的配置,减少管理员的实际工作量。并且维护起来非常方便。
NameVirtualHost 192.168.0.180
ServerAdmin root@web.xxnu.edu.cn
DocumentRoot /ftp/*
ServerName *.xxnu.eud.cn
3 总结
基于名机的虚拟主机结合DNS服务,实现各学院的独立域名访问。技术要点主要体现在:对DNS服务器的正向域名解析配置;正确配置APAACHE的虚拟主机;有效的结合URL重定功能实现大规模虚拟主机的服务。通过服务器的正确配置和调整,方便了各学院的自主管理;WEB服务器的管理更规范化、简单化;更高效的为用户提供WEB服务。
参考文献:
[1] 虚拟主机知识[EB/OL].http://nc.tju.edu.cn/ncnew/n20.htm.
[2] 技术论坛[EB/OL].http://www.chinaunix.net.
[3] Pauul Albitz,Cricket Liu,著.雷迎春,陈世林,杨传军,译.DNS and BIND[M].3版.中国电力出版社,2001.1.