Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

用Linux搭建全自动的虚拟主机(上)

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]
用Linux搭建全自动的虚拟主机 王光辉

  作为一所高校,必须为各院系、各部门,以及老师、学生提供虚拟主机服务。一般要求有一个二级域名,能由用户自主管理,能支持PHP、JSP等动态网页技术,并且需要给用户一个空间限制,要求他们不能任意上传大量文件。

  对于一些熟悉Web的系统管理员实现以上要求并不是太困难。二级域名可以通过在域名系统做一个CNAME记录,并在Apache的配置文件里为其做一个基于名称的虚拟主机即可实现;可以通过给每个用户一个FTP账号来实现自主管理;支持PHP和JSP则可以通过安装相应模块来实现。但是问题随之而来。每次做一个账号都必须手忙脚乱地忙碌好一阵子;每次修改完Apache的配置文件后都要重新启动Apache;在域名系统里添加记录后还要做一个ndc reload,更加让人头疼的是,随着用户的增加,系统的httpd.conf文件会变大,/etc/passwd文件里的用户会变多,这样一个大的系统对于管理、安全来说都是灾难性的。

  怎么去有效、安全、方便地管理这样一个系统呢?笔者作为一名高校的网络管理员,在经过仔细地研究和实践后,成功地利用自由软件在Linux服务器上实现了该系统的自动管理,一切工作都可以由用户在一个Web页面上自助完成,目前该系统运行良好。当然,系统会要求一个身份验证,管理员通过Web页面核对该用户资料是否属实,确认后通过简单地选择“通过”按钮,就可方便地为用户开通服务。

准备工作

1.软件的选择

  按照需求提供服务是最基本的原则。这里需要提供服务的实际环境为一台DNS服务器(HP E50)和一台Web服务器(IBM x232),如果条件不允许,也可以在一台服务器上实现。当然,对于固定IP的要求一般单位应该都能满足。

  这里选择了Apache来提供虚拟Web服务。Apache由Apache软件基金会组织(Apache Software Foundation)负责开发,是一个可自由使用的、功能完备的Web服务器,因此被广泛地使用。许多商业Web服务软件都采用了Apache作为前端服务软件。Apache有各种各样的模块供用户选择,基本上能满足用户要求,这里会使用2个重要的非默认模块。

  考虑到现在普及的方式和系统成本,采用FTP来管理文件实现用户的自我管理。FTP服务软件种类很多,选择的原则是:不能使用系统账号,安全性高,易用好强。经典的wu-ftpd在许多Unix平台是默认的FTP服务软件,但是其使用了系统账号,安全性较差;与Red Hat搭配的vsftpd安全性高,稳定性也很好,但是其易用性没有达到本系统的要求。所以最后确定选择了proftpd。这是一个非常流行的FTP服务软件,配置方便,并有MySQL模块和Quota模块可以选择,可以利用它们的完美结合实现非系统账号的管理,用户磁盘的限制。

  用户域名服务选择Bind,几乎所有的Unix/Linux系统都在使用它,并且几乎所有大的DNS服务提供者都采用了它。可在Red Hat系统安装时选择Bind。

  实现PHP动态网页服务当然少不了PHP。JSP则采用了Resin。没有采用常用的Tomcat,主要是考虑Apache和Resin的结合会更好。当然,也可以选择任何您认为好的服务软件。

  最后还必须安装MySQL软件,可以在Red Hat系统安装时安装它,也可以选择安装完系统后再手工安装。这里选择了手工编译安装,尽管RPM包安装要方便很多,但手工编译带来的是更方便的选择。

  除以上软件外,该系统还安装了Zend Optimizer,该软件不仅能提供加密代码的执行,更关键的是能够提高PHP代码的执行效率。Mod_security是一个为了防范某些SQL注入攻击行为的模块。更多信息请参考相关资料。

2.软件的下载

  可将所有软件都下载到/root/vhosts/下。

(1)Apache1.3.28

#wget ftp://ftp.linuxaid.com.cn/pub/mirrors/apache/dist/httpd/apache_1.3.28.tar.gz

(2)PHP4.3.3

#wget http://php.linuxaid.com.cn/get/php-4.3.3.tar.gz/from/cn.php.net/mirror

(3)MySQL3.23.52

#wget http://mysql.linuxaid.com.cn/Downloads/MySQL-3.23/mysql-3.23.52.tar.gz

(4)proftpd1.2.8

#wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.8.tar.gz

(5)proftpd-mod-quotatab-1.2.7

#wget http://www.castaglia.org/proftpd/modules/proftpd-mod-quotatab-1.2.7.tar.gz

(6)Resin2.1

#wget http://www.caucho.com/download/resin-2.1.11.tar.gz

(7)Zend Optimizer

#wget http://www.zend.com/store/getfreefile.php?pid=13&zbid=548

  这里要有一个accept的用户授权协议,然后才能下载。

(8)mod_security

#wget http://www.modsecurity.org/download/mod_security-1.6.tar.gz

  下面就一起进入具体的实现步骤。具体实现前,请注意安装系统时要求选择开发包,即把GCC及关联软件包选择上。

系统安装和配置

1.DNS服务器的安装

  安装Red Hat 9.0时选择服务器安装方式,除选择域名服务外,其它的所有软件均可不装。安装需要的安装系统是安全的一个基本原则。

2.域名服务器的配置

  首先将申请域名的解析权利交给该台DNS服务器,具体办法是申请的时候要求把DNS解析权指向该服务器,然后就可在其上配置域了。

  /etc/named.conf文件配置示例如下:


options {
	directory "/var/named";
};
zone "." in {
	type hint;
	file "named.root";
};
zone "0.0.127.in-addr.arpa" in {
 	type master;
	file "localhost.rev";
};
zone "yourdomain.com" in {
	type master;
	file "yourdomain.hosts";
};
zone "176.118.202.in-addr.arpa" in {
	type master;
	file "176.rev";
};

  域名里面的yourdomain是配置的关键,将采用泛域名形式。

  /var/named/yourdomain.hosts文件内容如下:


$TTL 3600
@	IN	SOA	hrbeu.hrbeu.edu.cn. 	root.mail.hrbeu.edu.cn. (
		2003080812	; serial
		360000		; refresh every 100 hours
		3600			; retry after 1 hour
		4w			; expire after 1000 hours
		3600			; default ttl is 100 hours
		) ; Define the nameservers and mail servers
	IN	NS	hrbeu.hrbeu.edu.cn.
	IN	NS	lion.hrbeu.edu.cn.
	IN	MX	10	mail.yourdomain.com.
; Define localhost
localhost	IN	A	127.0.0.1
; Define hosts in this zone
*.yourdomain.com. IN A 218.7.43.21


 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:加固你的MySQL   下一篇:编写 Linux 实用程序的艺术

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章