当前位置:Linux教程 - Apache - apache - Linux下虚拟域名的实现

apache - Linux下虚拟域名的实现

Linux下虚拟域名的实现
2004-04-23 15:18 pm
来自:Linux文档
现载:Www.8s8s.coM
地址:无名

目前Linux操作系统十分火爆,所以很多朋友希望了解一下Linux下虚拟域名的实现过程。下面就基于目前比较流行的RedHat来讨论一下。

  一、DNS服务器的设置

  我们知道互联网网是基于TCP/IP协议的,要进行通信必须获得对方的IP地址,这是通过DNS服务器来实现的。因此要想实现虚拟域名首先应当令DNS 服务器接受该虚拟域名,即把它映射到指定的IP地址上。因为我们靠Web服务器来区分域名,所以这个IP地址自然应当是Web服务器所管理的。

  RedHat6.0操作系统中捆绑有BIND DNS服务器。它的域名配置文件是"/etc/named.conf",一般情况下,域配置文件放在"/var/named"目录下面。

  例1、named.conf文件的配置:

  zone "domain.com" {
  type master;
  file "domain.com";
  };
  zone "0.10.10.in-addr.arpa" {
  type master;
  file "10.10.0";
  };

  该例子说明"domain.com"的域配置文件是"/var/named/domain.com",反向域的配置文件是"/var/named/10.10.0"。domain.com文件负责把DNS域名映射为IP地址。

  例2、domain.com文件配置:

  @ IN SOA dns.domain.com. hostmaster.dns.domain.com. (
  1998111003 ; serial
  3600 ; refresh
  900 ; retry
  1209600 ; expire
  43200 ; default_ttl
  )
  @ IN MX 10 dns.domain.com.
  @ IN NS dns.domain.com.
  @ IN A 10.10.0.1
  www IN A 10.10.0.1

  假定要增加的域名是aaa.domain.com,想要指到www.domain.com,DNS服务中应增加一个别名记录,可写成:

  aaa IN CNAME www.domain.com.

  如果需要配置大量的虚拟域名,domain.com文件要很大,而且也相当麻烦。我们可以使用符号 "*" ,即在 domain.com 文件中加入:

  * IN CNAME www.domain.com.

  这样它就把所有没给出设置的以domain.com结尾的记录全部转到www.domain.com去了,不管是aaa.domain.com还是bbb.domain.com。这不会影响已有的记录。配置好DNS服务器后应该重新启动守护进程named:

  [root@domain /root]# /etc/rc.d/init.d/named restart

目前Linux操作系统十分火爆,所以很多朋友希望了解一下Linux下虚拟域名的实现过程。下面就基于目前比较流行的RedHat来讨论一下。

  二、Apache服务器的配置

  Apache服务器是目前互联网上使用最多的Web服务器,它可以维护非常繁忙的站点。RedHat 6.0捆绑了 Apache Web Server 1.3。它的配置文件位于"/etc/httpd/conf"目录下,有httpd.conf、srm.conf、 access.conf,下面讨论一下与虚拟域名有关的配置:

  1、静态配置

  修改配置文件 httpd.conf 的步骤:

  (1) 首先设置UseCanonicalName为off。它指示用服务器Host:header的内容代替ServerName 的值来提供给环境变量SERVER_NAME。

  (2) 然后加入:

  NameVirtualHost xxx.xxx.xxx.xxx其中xxx.xxx.xxx.xxx为所要配置的虚拟服务器的IP地址。在此可配置多个虚拟IP地址,当然要与DNS服务器中的配置一致。(注意:这里要用IP地址,不能用域名。)

  (3) 接下来为每个虚拟域名加入一段记录:

  < virtualhost xxx.xxx.xxx.xxx>
  .....
  < /virtualhost>

  xxx.xxx.xxx.xxx要和NameVirtualHost配置的IP地址一致。在两个标志之间可加入的配置参数有:

  ServerName后面跟你要增加的虚拟域名,如aaa.domain.com ;
  Documentroot如果你映射到本机的路径就加在后面,如"/home/aaa" ;
  redirect如果你映射到远端的URL可加在后面,有两个参数,第一个是虚拟域名的相对路径,第二个是远端站点的URL;
  ServerAlias后可加入本域名的别名,可使用通配符,如*.aaa.domain.com 。

  下面举两个例子:

  例3、映射到本机的物理路径:

  < virtualhost xxx.xxx.xxx.xxx>
  DocumentRoot "/home/test"
  ServerName test.domain.com
  < virtualhost>