精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● Linux>>有待整理文章>>Linux组网入门(1):WEB服务器(下)

主题:Linux组网入门(1):WEB服务器(下)
发信人: mark7312(小马哥)
整理人: qiaoqian(2002-05-13 06:53:33), 站内信件
4.3.3 srm.conf的配置
    这个文件主要用来指定主页文档的位置。下面介绍三个最常用的命令。
    1. DocumentRoot命令,用来指定主文档的地址。
    命令格式: DocumentRoot [Path]例:DocumentRoot /home/httpd/html
    2. UserDir命令,用来指定个人主页的位置。如果你有一个用户test,那么它主目录是“/home/test”,当客户端输入 http://yourdomain/~test”,系统就会到对应的目录“/home/test/UserDir/”中去寻找。其中“UserDir”就是在UserDir命令中设置的指定目录。
    命令格式: UserDir [Path]例: UserDir Public_html
    3. DirectoryIndex命令,用来声明首页文件名称。一般地,我们使用“index.html”或“index.htm”作为首页的文件名。如果这样设置后,那么客户端发出WEB服务请求时,将首先调入的主页是在指定目录下文件“index.html”或“index.htm”。
    命令格式: DirecotryIndex [filename]例:DirecotryIndex index.html

    4.3.4 使新的配置生效
    在上面,我们可能已经根据新的需求更改了相应的配置选项,如果我们要使得这个新的配置立即生效。我们就必须重新启动WEB服务进程。
    在LINUX中,我们可以十分方便地使用命令行来使得WEB服务进程重启。
/etc/rc.d/init.d/httpd restart

    4.4 为用户开辟个人主页空间
    如果我们利用了LINUX系统架设了一台WEB服务器,我们不仅可以存放公司的主页,而且还可以为公司的每一个员工提供一块个人主页的空间。
    1. 首先,为需要个人主页空间的员工在LINUX上开设一个帐号。这样,它就拥有了一个用户主目录“/home/用户帐号名”。
    addusr 用户帐号名passwd 用户帐号名
    2. 在用户主目录下建立一个目录“public_html”,然后为其设置相应的权限。
    cd ~用户帐号名mkdir public_htmlchmod 755 public_html
    3. 确认在srm.conf文件中的UserDir命令设置的是public_html目录。
    4. 让员工将自己的个人主页上传到自己用户主目录下的public_html目录中。
    5. 现在就可以使用“http://www.company.com/~用户帐号名”来访问员工的个人主页了。

4.5 用Apache实现虚拟主机服务

    4.5.1 什么是虚拟主机服务
    所谓的虚拟主机服务就是指将一台机器虚拟成多台WEB服务器。举个例子来说,一家公司想从事提供主机代管服务,它为其它企业提供WEB服务。那么它肯定不是为每一家企业都各准备一台物理上的服务器,而是用一台功能较强大的大型服务器,然后用虚拟主机的形式,提供多个企业的WEB服务,虽然所有的WEB服务就是这台服务器提供的,但是让访问者看起来却是在不同的服务器上获得WEB服务一样。
    具体地说,就是,我们可以利用虚拟主机服务将两个不同公司www.company1.com与www.company2.com的主页内容都存放在同一台主机上。而访问者只需输入公司的域名就可以访问到它想得到的主页内容。
    用Apache设置虚拟主机服务通常可以采用两种方案:基于IP地址的虚拟主机和基于名字的虚拟主机,下面我们分别介绍一下它们的实现方法。以便大家在具体的应用中能够选择最合适的实现方法。

    4.5.2 设置实现基于IP地址的虚拟主机服务
    1. 实现前提
    这种方式需要在机器上设置IP别名,也就是在一台机器的网卡上绑定多个IP地址去为多个虚拟主机服务。而且要使用这项功能还要确定在你的LINUX内核中必须支持IP别名的设置,否则你还必须重新编译内核。
    下面举一个拥有两个虚拟主机的服务设置,以供参考。
    2.配置步骤
    假设,我们用来实现虚拟主机服务的机器,首先已经为自己提供了WEB服务,现在将为新的一家公司www.company1.com提供虚拟主机服务。
    1) 规划IP地址:为虚拟主机申请新的IP地址。(假设本机IP地址为202.101.2.1)
      www.company1.com 202.101.2.2
    2) 让ISP作好相应的域名解析工作。
    3) 为网卡设置IP别名:
      /sbin/ifconfig eth0:0 202.101.2.2 netmask 255.255.255.0
    4) 重新设置“/etc/httpd/conf/httpd.conf”,在文件中加入:
      <VirtualHost 202.101.2.2>
      ServerAdmin [email protected]
      DocumentRoot /home/httpd/www.company1.com
      ServerName www.company1.com
      ErrorLog /var/log/httpd/www.company1.com/error.log
      </VirtualHost>
    5)建立相应的目录。
      mkdir /home/httpd/www.company1.com
      mkdir /var/log/httpd/www.company1.com/error.log
    6)将相应的主页内容存放在相应的目录中即可。
    3.不利因素
    这种虚拟主机的实现方法有一个严重的不足,那就是,每增加一个虚拟主机,就必须增加一个IP地址。而由于IP地址空间已经十分紧张,所以通常情况下是无法取得这么多的IP地址的。而且从某种意义上说,这也是一种IP地址浪费。

    4.5.3 设置实现基于名字的虚拟主机服务
    而基于名字的虚拟主机服务,是比较适合使用的一种方案。因为它不需要更多的IP地址,而且配置简单,无须什么特殊的软硬件支持。现代的浏览器大都支持这种虚拟主机的实现方法。当然,这也就是指一些早期的客户端浏览器也许不支持这种虚拟主机的实现方法。
    正是以上原因,我们没有理由不使用基于名字的虚拟主机服务而使用基于IP地址的虚拟主机服务。
    配置基于名字的虚拟主机服务需要修改配置文件: 
    “/etc/httpd/conf/httpd.conf”,在这个配置文件中增加以下内容。
      NameVirtualHost 202.101.2.1

      <VirtualHost 202.101.2.1>
       ServerAdmin [email protected]
       DocumentRoot /home/httpd/www.company1.com
       ServerName www.company1.com
       ErrorLog /var/log/httpd/www.company1.com/error.log
      </VirtualHost>

      <VirtualHost 202.101.2.1>
      ServerAdmin [email protected]
      DocumentRoot /home/httpd/www.company2.com
      ServerName www.company2.com
      ErrorLog /var/log/httpd/www.company2.com/error.log
      </VirtualHost>

    也就是在基于IP地址的配置基础上增加一句:NameVirtualHost 202.101.2.1而已。在本例中,为了体现只需要增加一次,所以特别地设置了两个虚拟主机服务。
    最后也是建立相应的目录,将主页内容放到相应的目录中去就可以了。


----
小马哥

美丽的梦和美丽的诗一样,都是可遇而不可求的,
常常在最没能料到的时候里出现
     

[关闭][返回]