回信望愛

WWW、FTP、資料庫相關技術
作者/蔡哲民
 
  因為我們「窮技術人員」的氣息,信望愛站的 Web Server 自然也是選用不要錢的 Open Source 解決方案。

  起初,我們採用 CERN 的 httpd Server,主要是因為當時交通大學有一些資訊科系 的 Web-Server 也是使用這個版本的程式,而且聽說這個版本的程式比 NCSA 版本的安全 ,所以我們就用起來了。不過這個版本很快就沒有人繼續維護,反倒是修改自 NCSA 的 Apache Server 慢慢的成為 Unix 上的主流 Web Server,於是我們就將 CERN 換成 Apache。

  當時有許多人建議將 Squid 當成 Apache Server 的前端,可以加速整個網頁的反應速度,我們也有做過一些實驗,後來 實在覺得信望愛資訊中心的負載不可能高到什麼地步,所以我們到現在都是以純 Apache Server 來當成我們的網頁服務引擎。自從改用 RedHat 系統之後,我們有一段時間都是使用現成 的 rpm 程式來安裝我們的 Web Server。後來實在發現 RedHat 公司的設定與包裝未必符 合信望愛站的需要,所以我們目前都是自己由 Source Code 來編譯安裝。

  為了增加網頁的動態,以及提供與資料庫連接的功能等,我們也採用CGI來當成 Web 程式的發展工具。有鑑於 CGI 常常是系統安全問題的破口,所以我們特別使用 CGIC 這套 Library 來發展我們大部分的 CGI 程式。 使用 C,是因為 C 的效率不錯,並且早期我們的技術人員都熟悉 C 語言,因此不需要浪 費時間再多學習新的語言,加上 CGIC 這套程式庫非常好用,所以我們也一直沿用到現在。

  歷來我們發展了幾套網頁用的程式:投票程式、廣告看板程式、圖書查詢、電子報、 教會資料查詢、留言版等等,我們將程式放在 ftp://ftp.fhl.net/pub/FHL/CGI ,歡迎大家參考使用。

  最近我們大量改採用PHP來當成主要的 Web 程式 發展語言,主要是因為 CGI 的效率欠佳,而 PHP 也已經發展成熟了,所以當我們的使用者 越來越多的時候,就不能不考慮放棄效能欠佳的方式,而改用比較有效率的實現方式。且使用PHP開發起來相當簡便,可以縮短開發的時間,因此,近期的 miniSQL 出現,就引起大家廣泛的使用。信望愛站當然也去弄了一套,用來做網頁與 BBS 統計用的資料庫。 這套系統本來不要錢,後來要變成賣錢,我們為了版權問題還弄了台幣七千多元去買了一套。這套 系統並不是非常穩定,早期我們的技術人員 shew 甚至還改過該程式的錯誤呢。

  後來,陸續出了幾套不錯的資料庫伺服器,如 mySQL、Postgresql 等等。我們因為 使用 Redhat 系統的關係,很快的就選擇了 postgresql 來替換 miniSQL。 比起 miniSQL,postgresql 算是相當成熟的產品,比起 Sybase 一類的商業資料庫軟 體也不遜色,加上該系統是真正的 Open Source 軟體,所以我們也樂於繼續使用此系 統。

  最後來談談 FTP,這個服務雖然老舊,不過我們既然希望信望愛資訊中心可以提供 大家更完整的技術服務,那依賴 FTP 以及相關的 mirror 功能還是最穩當可靠的。透 過這些機制可以讓我們收集的軟體自動的更新到最新版。本來,我們都是安裝 wu-ftp ,反正這是安裝最普遍的 FTP Server。不過我們一直被這個 FTP 服務所苦,因為信望 愛資訊中心的專線速度只有幾百 K,隨便一兩個人來抓個大檔案,就把整個頻寬灌爆了 。於是我們一方面很希望能服務 Open Source 社群,盡一點文化使命,但一方面又苦 於 FTP 的服務常常讓我們其他的網路服務品質降低甚多。

  這種痛苦直到我們找到 Proftpd 才算 獲得解決。Proftpd 提供一項重要的功能,就是「下載頻寬限制」,透過這個功能, 我們就可以輕易的限制使用者下載頻寬,使得專線的頻寬可以保留一定的數額給其他網 路服務,這樣也讓我們可以更勇於好好的經營我們的 FTP site,提供更多的東西給需要 的人來抓取。

  我們從很久以來就在找一個可靠的 mirror 軟體可以幫我們的 FTP site 與軟體源 頭的 ftp site 同步,不過似乎找不到比較好的系統。比較大的問題是發生在一般的 mirror 軟體不會隨著源頭把檔案殺掉也殺掉本地端的檔案,所以很快的我們的 FTP site 就被過期的軟體灌爆了。後來有人引進 mirror 這個 perl 寫的軟 體,不過我們發現在 Redhat Linux 上跑起來,還是無法依照控制檔的設定去殺掉過期 檔案,還好這個軟體也是 Open Source 的,我們就動手去改主程式裡面的變數 「do_deletes」的內定值改為「1」,這樣就可以正常動作了。除此之外,我們也使用 rsync來作mirror之用,而且如果能使用 rsync,我們就不會使用mirror,主要是因為rsync可以比mirror更有效率的只傳該傳 的資料。


蔡哲民(tjm)記於 2000.2.19、修訂於2001.1.7


 
 
信望愛站軟硬體平台介紹與歷史     信望愛站的OS選擇與理由
信望愛站的硬體選擇與理由     信望愛站的備份策略
維護系統檔案的完整性     信望愛站的安全措施
信望愛站的BBS相關技術

回「信望愛技術」索引
 
 

回首頁

版權所有,請尊重著作權。
Copyright 2000 信望愛資訊中心 All Rights Reserved.