Apache多站点建立——基于RedHat AS4.0

来源:互联网 发布:腾讯视频mac下载 编辑:程序博客网 时间:2024/05/16 17:26
RedHat摸了一个月,感觉并没有什么实质性的进展。我是做网站开发的,用Linux,其实更关心网络服务的配置与管理,就像在Windows里,做WEB系统,当然要把IIS这一类服务玩熟。
    热衷开源的人常常跟我推荐Apache服务器,据说是非常优秀的HTTP服务器,在此不重述它的优点了。之前在Windows 2000 Server中尝试过Apache,感觉它配置上真有些麻烦,特别是在多站点建立上,IIS的站点管理非常直观,操作也很简单,


 
    Apache却没有这么显而易见的图形界面,站点配置需要编辑配置文件,配置错误和误操作都不易发现。所以估计APACHE的网络管理员待遇都会高一些。

    不过在RedHat AS4.0中提供了不错的图形化界面,可以比较方便地完成HTTP的配置,虽然此HTTP配置工具只适用于无额外模块的情况,但是对于初学者,借助工具来配置指令,然后再回过头来看看配置文件,有利于对基本服务配置的理解。

    首先启动Apache服务器:# Service httpd start
    我们来测试一下服务器的运行情况,直接在浏览器地址栏敲入:http://localhost/(局域网中访问可直接使用IP:http://192.168.0.88/ )
    打开Apache服务器的默认页面


 
    就如IIS有默认根目录:C:/Inetpub/wwwroot,Apache当然也有自己的默认目录:/var/www/html
    可直接在该目录下建立站点虚拟目录,如:/var/www/html/zjz/,
    则可通过http://localhost/zjz/ 或 http://192.168.0.88/zjz/ 访问该虚拟目录。

    此做法跟在IIS中建立虚拟目录无异,但是我们的目标是多站点管理。所谓多站点,我们希望可以通过不同的IP或域名访问不同的站点。

    先来试试RedHat里带的HTTP配置工具:应用程序-->系统设置-->服务器设置-->HTTP


 
    大致浏览一下,其功能于IIS类似,服务器的基本配置不动,仍然保留默认的服务器名localhost,这里我们主要关注一下虚拟主机的配置:
选择虚拟主机选项卡,添加新的虚拟主机:

    第一次用图形界面配置服务器,一下子搞不清楚“虚假主机名”和“服务器主机名城”各是什么含义,索性先填写相同的名称
在Host Information中,有两个选项,基于IP的虚拟主机和基于名称的虚拟主机。那么IP地址是什么呢?
    注意,其实系统的默认IP是192.168.0.88 ,刚才我们已经可以通过http://192.168.0.88/ 访问Apache服务器的默认站点目录,现在我希望可以通过另一个IP访问新建立的虚拟主机,在Linux下,我们可以使用ifconfig命令,在一张网卡上绑定多个IP地址:
    # ifconfig eth0:0 192.168.0.90
    这样,我们就可以将192.168.0.90这个IP与新建的虚拟主机zjz.v-key.net捆绑使用了。

    文档根目录指向站点文件存放的位置,然后设置网主电子邮件地址(可为空)

    保存以上设置并退出,重新启动一下服务器:# service httpd restart

    打开浏览器,连接http://192.168.0.90/ ,可以成功访问虚拟主机。

    现在的问题是:能不能通过虚拟主机名:zjz.v-key.net访问该主机呢?
    当然不可以,因为zjz.v-key.net不是系统DNS能够识别的域名。遗憾的是我的Linux系统中暂时还没有安装域名服务器。
    还是赵哥见多识广,教了我一个最简单的添加域名的方法:
    在/etc目录下,有一个hosts文件,用文本编辑器将其打开,添加一行新的IP与主机名的映射关系即可

 
    连接http://zjz.v-key.net  
 

    在这里顺便说一下Hosts文件,值得关注的好东西:
    其实在Windows中也有Hosts文件,存放在C:/Winnt/System32/Drivers/Etc 目录中,它的作用是包含IP地址和Host name(主机名)的映射关系,是一个映射IP地址和Host name(主机名)的规定,规定要求每段只能包括一个映射关系,IP地址要放在每段的最前面,空格后再写上映射的Host name(主机名)。
    我们知道在网络上访问网站,要首先通过DNS服务器把网络域名(www.XXXX.com)解析成XXX.XXX.XXX的IP地址后,我们的计算机才能访问。要是对于每个域名请求我们都要等待域名服务器解析后返回IP信息,这样访问网络的效率就会降低,而Hosts文件的一个重要作用就是提高解析效率。根据Windows系统规定,在进行DNS请求以前,Windows系统会先检查自己的Hosts文件中是否有这个地址映射关系,如果有则调用这个IP地址映射,如果没有再向已知的DNS服务器提出域名解析。也就是说Hosts的请求级别比DNS高。

    相同的方法,继续添加需要的虚拟主机,这里不重复了
 

    多站点测试成功,多少会给Apache的服务器配置带来些成就感吧!刚才我们只是做了一些简单的配置,在虚拟主机的配置中,还涉及SSL证书管理、记录日志、环境、性能等高级配置选项,图形化界面中都可直接进行设置,当然,如果能够熟练地在配置文件里进行服务器管理和配置,会显得更加专业吧?
    我们来对照一下,在完成了刚才两个虚拟主机的基本配置之后,我们的配置文件中对应的结果如何:
    Apache HTTP的服务器配置文件在/etc/httpd/conf/httpd.conf ,用文本编辑器将其打开,可以找到刚才的两个虚拟主机的配置结果:


 
ServerName :主机名 默认值是localhost
DocumentRoot:文档的根目录
DirectoryIndex :设置多种成功访问主页的方式

    对参数比较熟悉的话,直接修改配置文件似乎更简单。
    需要注意的是,修改配置文件建立的虚拟主机并不会体现在图形化工具中的虚拟主机管理界面中。

Apache的站点管理现在对我来说最为恼火的一个问题是:站点建立在/var/www/目录下,一点问题都没有,但只要建立在其他目录下,如:/myweb/zjz/  就是没有办法通过Apache访问。哎!有待研究.....

 
原创粉丝点击