php初学者:配置apache服务器并且设置dns

当然主要有技术含量的是点dns的解析,我正给我们公司负责,先查资料的说…‘

我们通常所说的虚拟主机技术就是将一台(或者一组)服务器的资源(系统资源、网络带宽、存储空间等)按照一定的比例分割成若干台相对独立的“小主机”的技术。每一台这样的“小主机”在功能上都可以实现www、ftp、mail等基本的internet服务,就像使用独立的主机一样。  目前网站服务器的虚拟主机平台使用以开放的apache为最多,其次是微软的windows iis。apache具有跨平台(freebsd/linux/windows/solaris/other unix)、易于维护与最佳安全性等优点。 apache是率先支持基于ip虚拟主机的服务器之一。 apache 1.1及其更新版本同时支持基于ip和基于主机名的虚拟主机,不同的虚拟主机有时会被称为基于主机(host-based) 或非ip虚拟主机(non-ip virtual hosts)。

用apache设置虚拟主机服务通常可以采用两种方案:基于ip地址的虚拟主机和基于主机名字的虚拟主机,下面我们分别介绍一下它们的实现方法以及优缺点。以便大家在具体的应用中能够选择最合适的实现方法。

一、apache实现基于ip地址的虚拟主机(每个站点拥有一个独立ip地址)

使用这种虚拟主机方式,首先要在服务器上为每个虚拟主机单独设置一个ip地址。这些ip地址可以通过增加多个网卡或者在一个网卡上设立多个ip地址来完成。有了多个ip地址后,可以采用以下两种方式之一来设置apache。

1、为每个虚拟主机运行一份apache 采用这种方式,每一份apache程序可以以单独的用户运行,因此各个虚拟主机之间互不影响。设置这种虚拟主机时,只要为每一份apache设置一套配置文件就可以了,唯一需要注意的是:必须使用“listen”语句,强制每一份apache 仅仅在属于“自己”的ip地址上接收服务请求。

优点:各个虚拟主机之间互不干扰,安全性高。 缺点:占用系统资源较多。

2、多个虚拟主机共享同一份apache 采用这种方式,各个虚拟主机共享同一份apache,因此各个虚拟主机之间有一定的影响,尤其是执行cgi程序时,可能会带来一些严重的安全问题。设置这种虚拟主机时,只要为每一个虚拟主机设置类似如下的信息即可: documentroot /www/ghq1 …

优点:占用系统资源比上一种方式少。 缺点:安全性低,每个虚拟主机仍然需要占用一个ip地址。

例如服务器一个网卡上绑定有两个ip地址(172.16.3.40和 172.16.3.50)分别对应域名 www.ghq1.com和www.ghq2.org的服务,配置如下:

服务器配置(apache的配置文件httpd.conf) listen 80

documentroot /www/ghq1 servername www.ghq1.com

documentroot /www/ghq2 servername www.ghq2.org

配置简单说明:“listen”默认httpd服务会监控第80号通信端口, “listen”选项让用户自行指定apache 服务器监控的ip地址或通信端口。

“documentroot”:指定apache 服务器存放网页的根目录;“servername”:允许用户自行设置主机名,这个名称将被送到远程连接程序,以取代安装apache 服务器主机的真实名称。和构成虚拟主机的语法结构,其中的ip就是我们在服务器上绑定的不同的ip地址,也可以是ip地址加上通信端口号(见下面的例子)。

如果服务器有两个ip地址(172.16.3.40和 172.16.3.50)分别对应域名 www.ghq1.com和www.ghq2.org。对每个域名,我们都希望在80端口和8080端口发布我们的网站。可以这样配置:

服务器配置(apache的配置文件httpd.conf) listen 172.16.3.40:80 listen 172.16.3.40:8080 listen 172.16.3.50:80 listen 172.16.3.50:8080

documentroot /www/ghq1-80 servername www.ghq1.com

documentroot /www/ghq1-8080 servername www.ghq1.com

documentroot /www/ghq2-80 servername www.ghq1.org

documentroot /www/ghq2-8080 servername www.ghq2.org

因此,建立虚拟主机,我们要做好不同的ip对应的域名解析工作,建立相应的目录(如/www/ghq1),将相应的主页内容存放在相应的目录中即可。

二、apache实现基于主机名的虚拟主机服务(一个ip地址实现多个网站) 基于主机名字的虚拟主机服务,是目前虚拟主机比较常用的一种方案。因为它不需要更多的ip地址,无须什么特殊的软硬件支持。而且现在的浏览器大都支持这种虚拟主机的实现方法。基于域名的的虚拟主机是根据客户端提交的http头中的关于主机名的部分决定的。使用这种技术,很多虚拟主机可以享用同一个ip地址。

基于域名的虚拟主机相对比较简单,因为我们只需要配置dns服务器将每个主机名映射(cnames)到正确的ip地址,然后配置apache http服务器,令其辨识不同的主机名就可以了。基于域名的服务器也可以缓解ip地址(ipv4)不足的问题。这种方式下,各个虚拟主机共享同一份apache,因此有cgi程序运行时,安全性也不高。

优点:只要一个ip地址就可以提供大量的虚拟主机服务。 缺点:安全性差。维护这些虚拟主机时需要更改配置文件,并且需要重新启动apache进程才能起作用。因此不适合进行大规模的虚拟主机服务。

如果服务器只有一个ip地址,而在dns中有很多映射到这个机器。我们想要在这个机器上运行www.ghq1.com和 www.ghq2.org两个站点。在apache服务器的配置中创建一个虚拟主机并不会自动在dns中对主机名做相应更新。我们必须自己在dns中添加域名来指向我们的ip地址。否则别人是无法看到我们的web 站点。

服务器配置(apache的配置文件httpd.conf) # ensure that apache listens on port 80 listen 80

# listen for virtual host requests on all ip addresses namevirtualhost *

documentroot /www/ghq1 servername www.ghq1.com

# other directives here

documentroot /www/ghq2 servername www.ghq2.org

# other directives here

因为*(星号)匹配所有的地址,所以主服务器不接收任何请求。因为 www.ghq1.com首先出现在配置文件中,所以它拥有最高优先级,可以认为是默认或首要服务器。这意味着如果一个接受的请求不能与某个servername指令相匹配, 它将会由第一个virtualhost所伺服。

当我们的ip地址无法确定的时候,使用*是很方便的–比如说, isp给我们配置的是动态ip地址(如adsl拨号上网),而我们有使用了某种动态域名解析系统时。因为*匹配任何ip 地址,所以在这样的情况下,不论ip地址如何变化,我们都不需要另外进行配置。上述配置就是我们在绝大多数情况下使用基于域名的虚拟主机

http://www.bkjia.com/phpjc/509201.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/509201.htmltecharticle当然主要有技术含量的是点dns的解析,我正给我们公司负责,先查资料的说…‘ 我们通常所说的虚拟主机技术就是将一台(或者一组)服务…

Posted in 未分类

发表评论