歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> Linux業界

微軟執行官:Apache就是比較好

作者: 吳端輝 
2005-07-19 10:36 AM
大家很清楚 Apache 大概是微軟最頭痛的對象之一。非常有趣的,微軟執行長 Steve Ballmer 竟然在奧地利公開 承認 :「這是我們自己的錯,如果我們不能提供足夠的特點配上我們服務器軟件的價位。當談到在同一個服務器上同時提供數個網站時, Apache 就是比較好!( Apache is simply better )。」,那微軟自家的 IIS 呢?有了這句話,一切盡在不言中。


 
Apache 人氣節節上升

其實在 Linux (或其它 UNIX-Like 的 OS 中),有好幾個不錯的網頁服務器,如 Apache 、 Zeus 、 Netscape ( SunONE )、 Notes/Domino… 等。其中, Apache 最受外界矚目。

Apache 最早是美國伊利諾大學裡國家超級電算應用中心( NCSA )的 Rob McCool 開發出來的,當初取這個名字以尊崇印地安人的高超戰技與堅忍不拔的毅力。 Rob1994 年離開 NCSA 後,由 8 位熱心的 Apache Group 成員繼續維護,之後又正式成立了 Apache Software Foundation 。 Apache 是目前市占率最高的網頁服務器。

目前幾乎所有的商用 Linux 操作系統已事先內建( bundle )了 Apache ,當然使用者也可自行下載 原始程序 ,然後自行編譯再進行安裝。

如果選擇自行編譯並安裝,初學者最常碰到的問題就是跟原有的檔案搞混,而得出一些莫名其妙的結果。建議在編譯時,特別小心路徑處理,或者干脆先把原有的 Apache 移除掉(如 rpm -e apache ),再編譯 Apache 程序。

模塊化設計與開放

我個人認為, Apache 最棒的地方在於其模塊化設計與開放,這具體表現在幾個方面:

· 效能

在 Apache1.3 時,原始程序是由 25,000 個 C 程序組成。由於公開原始碼,許多人貢獻心力幫忙程序除錯,而使該軟件達至最佳化,因而效能表現特佳,也十分穩定。另一項好處是使用者可選擇自已需要的模塊再行編譯,用不上的可不用編譯或掛載,如此一來, Apache 執行效能可獲得進一不的提升。例如,使用者可在 httpd.conf 檔案中設定,決定使用 mod_php 、 mod_perl ,或是 mod_SSL 等模塊。

· 安全性

在密碼認證支持方面, Apache 內建 Basic 、 Digest 兩種選擇。密碼儲存部分, Apache 也早已支持 LDAP 、 MySQL 及 PostgreSQL 等,也允許使用者自行撰寫密碼認證的模塊。

· 網址自動檢查拼字

網友常常打了一長串的網址( URL )後只因少一個字;或多了一個字,或者是大小寫搞錯,結果經常找不到網頁。 Apache 有一個很棒的功能就是可以自動檢查拼字。不過,使用者必須手動啟動( speling_module )。

· 自行修改核心

我曾經遇一家客戶,這家公司的首頁不是一個靜態的網頁,而是一個用 C 寫的 CGI 程序,每次有人浏覽這個網站時,可想而知的,該 CGI 程序就得自數據庫抓取一堆數據。該網站經常當機,問題其實在於該 CGI 程序的負擔太重,卻又不願意放棄這個功能。

後來,我們協助這家公司將該 CGI 功能移至 Apache 的核心模塊之一( mod_perl )後,發現執行速度快了十多倍,而且當機頻率也大幅降低。舉例來說,當你使用數據庫中內建的 MAX 函式,絕對會比自己另外寫程序來找出最大值快得許多。

還有另一個案例是我們幫忙一家客戶在 mod_perl 模塊中整合某一個程序,將一個目錄中提供下載的檔案,全部都自動壓縮成 zip 檔案,以大幅減少客戶下載的時間。其實,可以在 Apache 上發揮創意的地方太多,這只是其中一例。反觀這些應用,在沒有開放原始碼的 IIS 中,是非常難以達成的。

· 內建 Proxy 功能

Apache 也有內建的 Proxy 功能,您可以自動啟動相關模塊( proxy_module )。
 

替代 IIS 的其它選擇

實際上,網頁服務器轉換的最大的問題還是在動態網頁。如 IIS 上相當重要的 ASP ,應該要怎麼處理呢?別急,以下幾個方案可酌參考。

· Java System ASP


 
前身原本是有名的 Chilisoft ,現為升陽旗下產品線的一員。 Java System ASP 可在 Linux 、 Solaris 及 Windows 上執行,支持 ASP 、 XML 、 vb script/Jscript 、 ODBC ,且可存取多種數據庫。 Java System ASP 已與升陽旗下的 Java 網頁服務器事先整合,但也有部分功能可在 Apache 上執行。

· PHP

LAMP ( Linux 、 Apache 、 Mysql 、 PHP )的組合已成為相當受歡迎的自由軟件組合。 PHP 這個在 Apache 上執行的動態網頁語言,提供的功能類似 IIS 上的 ASP 語言。使用者也可以考慮直接將 ASP 網頁改寫成 PHP 網頁。 事實上,學習 PHP 網頁就像 ASP 網頁一樣的容易。或者您也可以考慮另一個自由軟件- asp2php ,其可以協助將 ASP 網頁自動轉換成 PHP 網頁。當然,可想見這個方式並無法保證 100% 的成功率,但至少可節省不少時間。另有一個更簡易的「 script2script 」可參考。

· JSP

像 PHP 一樣, JSP 也是一個不錯的選擇。 JSP 是升陽重要的 Java 貢獻之一,也可在 Apache 或升陽的 Java Web Server 之上執行。另有一個 asp2jsp 可將 ASP 網頁自動轉換成 JSP 網頁。

· Perl

老牌的 Perl 語言在過去也是非常受到開發者歡迎的。創始人 Larry Wall 曾形容自己是個懶人,因而創造了這個簡單的程序語言,用以節省撰寫程序的時間。 Perl 在所有的網頁服務器(不論是 IIS 或是 Apache ),或是操作系統(包括 MAC 、 Windows 、 UNIX 、 Linux… )之上都能夠執行無誤。

· ORACLE 9iAS Migration Kit for ASP

甲骨文旗下重要的產品,可以將 ASP 應用轉換成 JSP ,而甲骨文也提供很好的數據庫轉換工具。當然,甲骨文的產品並不便宜。

轉換會出現什麼問題?

要由 IIS 轉換到 Linux 上,當然無可避免的也會遇到一些問題。例如,靜態網頁與圖文件的復制。這部分問題遭遇的問題通常較少,可慢慢手動復制,只要多花些時間耐心,當然也可使用 LSP 自動復制。

在目錄權限與虛擬目錄設定方面, Apache 已有完整支持。當然,一如 Samba ,必須對 Apache 的設定檔案語法有些基本了解,或者可使用 Webmin 及 LSP 協助設定, LSP 可自動將 IIS 的設定自動轉換到 Apache 上。

過去,在協助客戶進行網頁服務器轉換時,經常發現客戶有幾個常犯的的錯誤,在此供各位參考。

· CGI 程序的權限

如果沒有仔細設定 CGI 程序的權限,通常會得到一個「 Internal Server Erro 」的錯誤訊息,多數使用者常因此而一頭霧水,不知哪裡出錯。這在 IIS 上是不太容易發生的。另一種極端的情況是卯起來將目錄、檔案權限全部設成 777 ,那麼在安全上,恐怕又會制造出一個大漏洞。

· 忘了啟動某些模塊

Apache 的模塊化相對也制造了一些可能出錯的機會。例如,要使用 PHP 網頁程序,別忘了在 httpd.conf 中啟動 php_module 。尤其是若想使用某些舊的 php3 程序,就必須啟動 php3_module 。另如 ssl_module 、 cgi_module… 等也應稍加注意。

· 密碼認證

如前面所提及,常用的 Apache 密碼共有 Basic 、 Digest 兩種。 Basic 沒有加密,使用時要格外小心;若選擇 Digest 加密,經常會忘記啟動 Digest 。還有,不支持 http 1.1 格式的浏覽器遇到 Digest 密碼將會出現錯誤。

· 大小寫有關系

例如,在使用 FTP 上傳檔案時,常常會把檔案小寫傳成大寫,在 Windows/IIS 上檔名,檔案大小寫並無差別,但用在 Linux 、 Unix 與 Apache 上可是大不相同。

· ASP 擴展名沿用?

前面已提及可用 PHP 、 JSP 或 Perl 取代原來的 ASP 網頁。我們曾經執行一個項目,主要是從 ASP 轉換至 PHP (非 LSP 標准功能),前後花費 2 個星期時間,才全部轉換完畢。在測試過程中,我們發現很多自外部搜尋引擎連接至這些 ASP 檔案的超級鏈接,全部都已失效。主要原因是因為 ASP 網頁的 URL 結尾是 .asp ,而 PHP 網頁的 URL 結尾是 .php 。

幸好, Apache 擁有強大的 URL 重寫功能(不過要花一點時間了解),在設定好之後,可讓所有 URL 完全不變(即便鍵入 xxx.asp ),還是可連結至最新的 PHP 網頁。一如前面所提及,使用者也可自己寫一個新模塊,將所有要連接至 .asp 擴展名的 request ,重新導向( redirect )至 .php 網頁之上。

一如其它服務器的轉換一樣,從微軟的 IIS 到 Linux 的 Web Server 轉換,不會是一蹴可幾的任務,但是有了這麼多 Open Source 的工具可供選擇,及 Sun 、 Oracle 等大廠的加持,相信您對此應該已信心大增。最後,也要感謝微軟執行長 Steve Ballmer 對 Apache 的大力贊揚。

 




Copyright © Linux教程網 All Rights Reserved