WEB SERVER如何支援CGI/PHP/Perl

來源:互聯網
上載者:User
cgi|perl|server|web|程式 DNS伺服器既可以是主控伺服器也可以是次要伺服器。主控伺服器也稱為主伺服器,是判定網域名稱的最終來源。主控伺服器同時也是傳送到次要伺服器的區傳送(zone transfer)的源頭。次要伺服器接收所有來自主控伺服器的區資訊。一個常見的錯誤是試圖改變二級伺服器上的區資料庫檔案而沒有改變主控伺服器上的區資料庫檔案(zone file)。為什麼要兩個伺服器呢?在任何配置中使用冗餘都是一個好主意,這是BIND和DNS的一個原生部分。幸運的是,在機房中增加第二台Linux機器作為輔助DNS伺服器一般來說不會影響你的預算。

要記住當有兩種類型的伺服器時,主控伺服器也可以同時擔當其他域的次要伺服器。在大多數ISP環境當中都可以看到這種情形,客戶擁有自己的主控DNS伺服器,同時又出於備份的目的把ISP當作二級伺服器。這種類型的配置以及BIND中幾乎所有的其他配置項都是通過named.conf檔案完成的。這個檔案以純文字的形式存放各伺服器資訊和區資訊。如表A所示。


named.conf 檔案樣本

options {
notify-source 10.0.0.2,
pid-file "/var/run/named.pid",
},

zone "." {
type master,
file "root.db",
},

zone "example.com" {
type master,
file "/var/named/sample.com.zone",
},

DNS伺服器有多種可用的選項,如果你需要某種特殊的安裝方式,我建議你通讀一遍附帶的文檔

。上面的例子中notify-source指明伺服器把區變動通知(NOTIFY)訊息發送到什麼地方,當主控伺服器檢測到區資料庫檔案發生變動時就會向次要伺服器發出這樣的訊息。pid-file選項只是告訴守護進程(daemon)伺服器寫入ID資訊的路徑,通常是/var/run/named.pid,但如果你重新設定了目錄的布局的話也可以根據需要對其變更。

上面的例子中第一個區登記項用來通知BIND在何處定位根伺服器的資訊。伺服器發送和接收的不僅是你自己的域資訊同時也包括Internet上所有的域資訊。並不是每個伺服器上都有每個網域名稱的登記項,但每個伺服器都知道怎樣擷取資訊。當然,由於列表會定期更新,所以也應當定期作記錄。

在named.conf樣本檔案中第二個區登記項是一個"主控"域項,意思是這個DNS伺服器儲存著example.com的有效資訊, Internet上其他所有的DNS伺服器都將用它來參照任何與這個域相關的資訊。Example.com項引用/var/named/sample.com.zone這個檔案。這是一個純文字檔案,它告訴DNS伺服器所有有關example.com的資訊,包括serial值、重新整理率、所有的DNS紀錄以及其他一些項目。表B顯示了這個區資料庫檔案的樣本。


DNS區資料庫檔案樣本

@ IN SOA ns1.sample.com. (
200101111 ,serial
14400 ,refresh after 4 hours
3600 ,retry after 1 hour
604800 ,expire after 1 week
86400) ,minimum TTL of 1 day
,
,Nameservers
,
IN NS ns1.sample.com. ,
IN NS ns2.sample.com. ,
,
,Domain Mail Handlers
,
sample.com. IN MX 10 mail
,
,Hosts in order
,
www IN A 212.204.219.71
ftp IN A 212.204.219.71
mail IN A 212.204.219.71
pop IN CNAME mail

SOA是Start of Authority的縮寫,所有區檔案都要以它打頭

。順序號(serial)使伺服器能夠紀錄所進行過的各次更新,守護進程最近一次啟動後只要數字出現了增長,它就會重新把資訊讀入到資料庫中去。舉例來說,你可以從0開始然在每次更新之後加讓一個數字,也可以使用日期項如200101111。這很有用,因為它讓你能夠看最近的一次更新的發生並且看出一天是否發生過多次更新。接下來的四行以秒的形式處理重新整理和逾時周期,如果BIND資料庫沒有發生過人工或者伺服器範圍的重新整理,伺服器會自動的重新讀入資訊。不需要經常改變此處所列出的數值,只有由於某種原因域非常頻繁地改變它們的資訊時才需要對這些數值變更。接著列出的是網域名稱,這樣BIND就會知道是誰控制整個域。

接著列出的是MX紀錄,,它使伺服器知道當有郵件資訊請求sample.com時應當發出什麼資訊,在本例中,mail.samle.com的優先順序是10。你可以列出多個MX紀錄作為郵件伺服器的備份。數字越小優先順序越高。要注意的是還有一個相應的A紀錄給出了mail.sample.com的IP地址,這是必不可少的,這樣DNS伺服器就可以知道怎樣根據域直接把郵件請求發往何處。一個A紀錄僅僅是把IP地址賦給一個子域項,如www、mail、ftp或者ns,這些都必須用上面的格式錄入,而且必須與一個IP地址相關聯。比如說,當某個使用者請求www.sample.com時,他將會被指向該域所在的Web伺服器的IP地址212.104.219.71。

上面的例子中還有一個CNAME項,CNAME是指canonical name,用於指定IP地址的別名,使用這些別名時還是要回過頭參考已經使用過的A紀錄。

次要伺服器部分

看過name.conf中的主控伺服器部分後我們再來看看次要伺服器部分: zone "sample2.com" {
type slave,
file "/var/named/sample2.com.zone",
master { 10.0.0.1, },

最主要的兩個區別一是type項,它既可以是master也可以使slave,二是IP地址指定的是主控DNS伺服器

。其他的都和Master項相同。

啟動BIND
用於啟動DNS服務的程式是named,讀作"name D"。你可以通過執行/etc/rc.d/init.d/named start命令來運行這個程式。如果伺服器已經處於運行狀態,你可以用restart命令。這個指令碼程式應該是在安裝時放進正確的目錄中的,它在啟動時運行以初始化伺服器。你總是應當用ps aux命令檢查一下named是否已經運行,這個命令會列出當前所有進程的清單。

總結
現在你對如何在Linux上使用BIND有了一個比較好的瞭解。通過下載最新的版本,對它進行基本的配置後你就可以把一個Red Hat Linux的機器變成一個成熟的DNS伺服器。有關DNS和BIND的主題很容易塞滿整本書。我建議你使用程式附帶的文檔,以及OReilly出版的《DNS和BIND》一書(譯註:中文版由水利出版社出版)。網域名稱解析是Internet能夠工作所必備的,也是Linux一個出色的用途。


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.