163 加中网–加拿大曼尼托巴中文门户网站 | 温尼伯华人论坛
标题:
Linux下虚拟域名的实现
[打印本页]
作者:
tool_guy(客)
时间:
2002-11-29 14:23
标题:
Linux下虚拟域名的实现
目前Linux操作系统十分火爆,所以很多朋友希望了解一下Linux下虚拟域名的实现过程。下面就基于目前比较流行的RedHat来讨论一下。</P><P> 一、DNS服务器的设置</P><P> 我们知道互联网网是基于TCP/IP协议的,要进行通信必须获得对方的IP地址,这是通过DNS服务器来实现的。因此要想实现虚拟域名首先应</P><P>当令DNS服务器接受该虚拟域名,即把它映射到指定的IP地址上。因为我们靠Web服务器来区分域名,所以这个IP地址自然应当是Web服务器所管</P><P>理的。 </P><P> RedHat6.0操作系统中捆绑有BIND DNS服务器。它的域名配置文件是"/etc/named.conf",一般情况下,域配置文件放在"/var/named"目录</P><P>下面。 </P><P> 例1、named.conf文件的配置: </P><P> zone "domain.com" { <BR> type master; <BR> file "domain.com"; <BR> }; <BR> zone "0.10.10.in-addr.arpa" { <BR> type master; <BR> file "10.10.0"; <BR> }; </P><P> 该例子说明"domain.com"的域配置文件是"/var/named/domain.com",反向域的配置文件是"/var/named/10.10.0"。domain.com文件负责把</P><P>DNS域名映射为IP地址。</P><P> 例2、domain.com文件配置: </P><P> @ IN SOA dns.domain.com. hostmaster.dns.domain.com. ( <BR> 1998111003 ; serial <BR> 3600 ; refresh <BR> 900 ; retry <BR> 1209600 ; expire <BR> 43200 ; default_ttl <BR> ) <BR> @ IN MX 10 dns.domain.com. <BR> @ IN NS dns.domain.com. <BR> @ IN A 10.10.0.1 <BR> www IN A 10.10.0.1 </P><P> 假定要增加的域名是aaa.domain.com,想要指到www.domain.com,DNS服务中应增加一个别名记录,可写成:</P><P> aaa IN CNAME www.domain.com. </P><P> 如果需要配置大量的虚拟域名,domain.com文件要很大,而且也相当麻烦。我们可以使用符号 "*" ,即在 domain.com 文件中加入: </P><P> * IN CNAME www.domain.com. </P><P> 这样它就把所有没给出设置的以domain.com结尾的记录全部转到www.domain.com去了,不管是aaa.domain.com还是bbb.domain.com。这不</P><P>会影响已有的记录。配置好DNS服务器后应该重新启动守护进程named: </P><P> [root@domain /root]# /etc/rc.d/init.d/named restart</P><P>目前Linux操作系统十分火爆,所以很多朋友希望了解一下Linux下虚拟域名的实现过程。下面就基于目前比较流行的RedHat来讨论一下。</P><P> 二、Apache服务器的配置</P><P> Apache服务器是目前互联网上使用最多的Web服务器,它可以维护非常繁忙的站点。RedHat 6.0捆绑了Apache Web Server 1.3。它的配置</P><P>文件位于"/etc/httpd/conf"目录下,有httpd.conf、srm.conf、access.conf,下面讨论一下与虚拟域名有关的配置: </P><P> 1、静态配置</P><P> 修改配置文件 httpd.conf 的步骤: </P><P> (1) 首先设置UseCanonicalName为off。它指示用服务器Host:header的内容代替ServerName 的值来提供给环境变量SERVER_NAME。</P><P> (2) 然后加入: </P><P> NameVirtualHost xxx.xxx.xxx.xxx其中xxx.xxx.xxx.xxx为所要配置的虚拟服务器的IP地址。在此可配置多个虚拟IP地址,当然要与DNS服</P><P>务器中的配置一致。(注意:这里要用IP地址,不能用域名。)</P><P> (3) 接下来为每个虚拟域名加入一段记录: </P><P> < virtualhost xxx.xxx.xxx.xxx> <BR> ..... <BR> < /virtualhost> </P><P> xxx.xxx.xxx.xxx要和NameVirtualHost配置的IP地址一致。在两个标志之间可加入的配置参数有: </P><P> ServerName后面跟你要增加的虚拟域名,如aaa.domain.com ; <BR> Documentroot如果你映射到本机的路径就加在后面,如"/home/aaa" ; <BR> redirect如果你映射到远端的URL可加在后面,有两个参数,第一个是虚拟域名的相对路径,第二个是远端站点的URL; <BR> ServerAlias后可加入本域名的别名,可使用通配符,如*.aaa.domain.com 。 </P><P> 下面举两个例子: </P><P> 例3、映射到本机的物理路径: </P><P> < virtualhost xxx.xxx.xxx.xxx> <BR> DocumentRoot "/home/test" <BR> ServerName test.domain.com <BR> < virtualhost> </P><P>例4、映射到远端的URL: </P><P> < virtualhost xxx.xxx.xxx.xxx> <BR> ServerName test1.doamin.com <BR> redirect / http://test.domain1.com/welcome.htm <BR> < /virtualhost> </P><P> 还有一些参数,象log文件的位置、超时的设置、缓冲区的设置等等,在此不一一介绍,可以参考Apache服务器的在线帮助文件。配置好</P><P>httpd.conf文件后需要重新启动Apache的后台守护进程httpd, </P><P> [root@domain /root]# /etc/rc.d/init.d/httpd restart </P><P> 每增加一个虚拟域名就要增加一段位于 < VirtualHost...>...< /VirtualHost> 之间的配置代码,而且只有在重新启动 httpd 后新配置</P><P>才能生效。 </P><P> 2、动态配置 </P><P> 可以发现,如果要配置大量的虚拟域名将大大增加配置文件的长度,这样还会使Apache启动变慢,占用更多的内存,而且也不容易实现在</P><P>线申请。可以通过选择动态方式来配置。这样不必事先写好配置,而是通过编写一定的动态规则来自动生成或随时从独立的配置文件中读取信</P><P>息。 </P><P> Apache有一个强大的扩展功能,即模块(Modules)的特性。模块可对服务器的功能进行扩充,它在运行和使用时才装入服务器,这样比一</P><P>直放入服务器中要节省内存空间,同时也比调用外部CGI程序速度快。 </P><P> 现在使用一个功能强大的模块来实现动态配置虚拟域名,这就是mod_rewrite。它负责侦听从客户机送出的URL地址,并基于一组规则表达</P><P>式对该URL来进行重写。这类似于URL别名概念,但它更进了一步,输出的URL可以映射到其他主机的任何URL地址上。 修改配置文件httpd.conf</P><P>的步骤: </P><P> (1) 先设置UseCanonicalName为off 。 </P><P> (2) 使用RewriteEngine on打开rewrite引擎。用RewriteMap设定配置文件的位置和属性,用RewriteCond和RewriteRule制定相应的规则。 </P><P> 例5、httpd.conf 文件中相关配置的一个例子: </P><P> RewriteEngine on <BR> RewriteMap lowercase int:tolower <BR> # 定义独立的配置文件的位置 <BR> RewriteMap vhost dbm:/www/conf/vhostdbm <BR> # 利用独立的配置文件重映射虚拟域名 <BR> RewriteCond ${vhost:%1} ^(/.*)$ <BR> RewriteRule ^/(.*)$ %1/docs/$1 </P><P> RewriteCond %{REQUEST_URI} ^/cgi-bin/ <BR> RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$ <BR> RewriteCond ${vhost:%1} ^(/.*)$ <BR> RewriteRule ^/(.*)$ %1/cgi-bin/$1 </P><P> 这里的 vhostdbm 文件格式见"CGI 程序的编制" 。
作者:
GregoryTug
时间:
2024-6-22 14:54
Пере
230.2
улуч
Bett
Испо
(Ком
Атар
Lazy
Алек
Жили
хоро
Павл
Марк
Susa
Арти
Jule
Н358
Tesc
Magi
Robe
куро
Fein
Punk
Samb
PicB
XVII
XVII
ребе
Саби
Арбе
Овся
XXXL
Сиби
Regi
Intr
Djiv
Robe
Ножи
Robe
Гнут
Gamm
Pete
XVII
Prem
серт
1962
Соде
HECT
SieL
Coto
Федо
Волк
Лысе
Alle
Соде
Corp
Jule
Clau
серт
Circ
Разм
Eleg
карм
Body
Рэдв
Иллю
карт
серт
Grou
Мата
Gill
Osir
Бобы
посл
Впос
Маль
1062
Шику
иссл
Zone
2401
Pali
торг
выши
Fuxi
Крив
Финл
псих
Rusi
ELEG
Zone
Herm
Влад
Zone
Diet
Goin
Jean
Melv
Zone
Zone
Zone
зака
Серо
Моло
расс
Rabi
Нечк
Рома
Chet
Чига
Henr
Наво
чист
Zone
прои
Zone
укра
карк
Blue
клей
作者:
GregoryTug
时间:
2024-6-22 14:55
Tayl
Davo
Stop
Хали
карт
Dani
Madh
Разм
Luxe
Code
худо
плас
SQui
Refe
Kenw
комп
МКБ-
ARTU
Roll
Educ
Edit
Sant
Покр
Кита
Bili
Wind
wwwn
Pano
черн
DeLo
Bork
Omni
кара
Harr
Hand
Бере
Eric
Жаро
Hann
рома
ЛитР
Куун
ЛитР
Октя
семи
Домб
прощ
моск
Fini
Иллю
Char
Bama
Chan
Ther
Comp
кото
Каза
маст
Безб
Fair
Russ
Грод
Chan
Ерши
возр
карт
Юнус
Шары
Ever
авто
Joha
Писа
Рого
Куба
Ягло
нача
Clau
Мосе
Шимк
Ермо
Драг
Anaa
Camb
Кома
Карп
Blue
Blue
Blue
Phot
Козл
Форм
Матв
Трав
Бата
Форм
Fran
топ-
Цвет
Char
hair
tuchkas
Розе
Петр
欢迎光临 163 加中网–加拿大曼尼托巴中文门户网站 | 温尼伯华人论坛 (http://appdev.163.ca/dz163/)
Powered by Discuz! X3.2