劉佳
摘要:目前用來(lái)搭建WEB服務(wù)器的軟件產(chǎn)品很多,對(duì)于WEB服務(wù)器軟件的選用直接關(guān)系到WEB訪問(wèn)的性能。進(jìn)而影響網(wǎng)站的訪問(wèn)量,是直接影響網(wǎng)站性能的關(guān)鍵因素,也是網(wǎng)站建設(shè)者在搭建網(wǎng)站運(yùn)行環(huán)境時(shí)需要考慮的問(wèn)題。目前用于搭建WEB服務(wù)器的軟件產(chǎn)品非常多,讓人目不暇接,被選最多和最有代表性的當(dāng)屬微軟的IIS、Apache、和Nginx。本文通過(guò)講解Apache和Nginx以及IIS的各自起源、特點(diǎn)和優(yōu)勢(shì),并對(duì)三種主流WEB服務(wù)器搭建技術(shù)進(jìn)行對(duì)比,從而幫助廣大用戶們能夠選擇適合自己的WEB服務(wù)器,提升WEB服務(wù)器性能。
關(guān)鍵詞:WEB服務(wù);進(jìn)程;服務(wù)組件
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020115-0081-02
WEB服務(wù)器也稱為WWW服務(wù)器、HTYP服務(wù)器,其主要功能是提供網(wǎng)上信息瀏覽服務(wù)。在互聯(lián)網(wǎng)發(fā)展的初期,人們只能單純地在互聯(lián)網(wǎng)上使用TELNET服務(wù)、FTP服務(wù)、郵件服務(wù)等簡(jiǎn)單的網(wǎng)絡(luò)應(yīng)用,而且必須使用專門的客戶端軟件才能實(shí)現(xiàn)。WEB服務(wù)器出現(xiàn)后,由于界面非常友好,操作簡(jiǎn)單,并且集成了FTP和郵件的相關(guān)功能,當(dāng)WEB服務(wù)在網(wǎng)絡(luò)上一經(jīng)推出,就受到了廣大網(wǎng)民的追捧,隨著WEB應(yīng)用的不斷發(fā)展,Internet也得到了迅猛的發(fā)展,可以說(shuō)因特網(wǎng)的發(fā)展與WEB技術(shù)的出現(xiàn)是密不可分的。大大降低了人們使用互聯(lián)網(wǎng)的門檻,因此WEB服務(wù)器成為互聯(lián)網(wǎng)上乃至全球最大的計(jì)算機(jī)集群。人們的生活方式也得以徹底改變。
1WEB服務(wù)的起源發(fā)展和特點(diǎn)
互聯(lián)網(wǎng)迅猛發(fā)展之前,人們只能通過(guò)傳統(tǒng)媒體如報(bào)紙、廣播、雜志、電視獲取信息。這種信息的獲取方式是單方面的,對(duì)使用者而言是被動(dòng)的,但隨著計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,人們已不再滿足于使用傳統(tǒng)媒體那種單方面?zhèn)鬏敽瞳@取的方式,而希望有一種主觀的選擇性。于是WEB應(yīng)時(shí)而生。1989年Web的應(yīng)用架構(gòu)是由英國(guó)人Tim Berners-Lee提出,它的前身是1980年Tim Berners-Iee負(fù)責(zé)的Enquire(Enquire Within Upon Everything的簡(jiǎn)稱)項(xiàng)目。1990年第一臺(tái)WEB服務(wù)器nxoeO1.eem.eh開(kāi)始運(yùn)行,全球第一次出現(xiàn)了圖形化Web瀏覽器。值得一提的是在1993年,WEB技術(shù)突破性解決了遠(yuǎn)程信息服務(wù)中的文字顯示、數(shù)據(jù)連接以及圖像傳遞的問(wèn)題,使得WEB成為可以集成原有因特網(wǎng)上的各項(xiàng)服務(wù),成為當(dāng)時(shí)最為流行的信息傳播方式。這種傳播方式的改變使得人們可以主動(dòng)的選擇瀏覽WEB站點(diǎn)上的新聞、財(cái)經(jīng)、氣象、音頻、視頻資料。而不像以往傳統(tǒng)媒體被動(dòng)的、單方面的接收信息。人們可以隨意在WEB上進(jìn)行文件檢索,通過(guò)搜索引擎查找自己關(guān)注的急需的相關(guān)信息。目前,Web服務(wù)器成為全世界范圍內(nèi)上最大的計(jì)算機(jī)集群,WEB頁(yè)面數(shù)量之多,涉及范圍之廣,影響之大無(wú)法想象。WEB的出現(xiàn)使得人們使用INTERNET的門檻大大降低,正是WEB的發(fā)展使得INTERNET的普及速度迅猛提升,WEB的出現(xiàn)是近年來(lái)Internet上取得的最激動(dòng)人心的成就。WEB服務(wù)是使用分布式結(jié)構(gòu),包括了瀏覽器/服務(wù)器結(jié)構(gòu)(B/s),其中WEB服務(wù)作用是整理和儲(chǔ)存各種WEB資源,并響應(yīng)客戶端軟件(瀏覽器)的請(qǐng)求,把客戶所需的資源傳送到各類不同平臺(tái)的客戶端機(jī)器上。從事WEB開(kāi)發(fā)的相關(guān)技術(shù)人員,無(wú)論是前端開(kāi)發(fā)還是后臺(tái)數(shù)據(jù)庫(kù)搭建,依然是當(dāng)期計(jì)算機(jī)從業(yè)的主流。目前支持搭建WEB服務(wù)器的軟件眾多,從事WEB開(kāi)發(fā)的技術(shù)人員至少需要掌握Apache、Nginx以及微軟的IIS其中的一種。下面對(duì)這三者分別進(jìn)行介紹。
2龍頭Apache HTTP Server起源、特點(diǎn)及優(yōu)勢(shì)
Apache目前在全球WEB服務(wù)器搭建軟件中市場(chǎng)的占有率大約在百分之六十左右,是名副其實(shí)的龍頭老大。Apache名字的來(lái)源是“a patchy server”,英文直譯為打滿補(bǔ)丁的服務(wù)器,中文也稱之為阿帕奇。因?yàn)檐浖缙脚_(tái)和安全性能出色而被廣泛應(yīng)用。最早的Apache源于NCSAhttpd服務(wù)器。因?yàn)槭情_(kāi)放源碼的軟件,所以不斷有人來(lái)為此軟件修改本身存在的缺陷,經(jīng)過(guò)多次修改,他的性能不斷提升,功能也不斷完善,可以通過(guò)簡(jiǎn)單的API進(jìn)行功能的擴(kuò)充。目前是世界上最為流行的WEB服務(wù)器軟件。阿帕奇的特點(diǎn)是可以充當(dāng)代理服務(wù)器來(lái)使用,他的性能非常穩(wěn)定而且速度快。與Linux或Unix能夠完美結(jié)合。阿帕奇不適用于多處理器環(huán)境。他的運(yùn)行以進(jìn)程為基礎(chǔ),相對(duì)于線程,進(jìn)程要消耗更多的系統(tǒng)開(kāi)支,因而在進(jìn)行網(wǎng)站擴(kuò)充時(shí),一般要通過(guò)擴(kuò)充節(jié)點(diǎn)集群或通過(guò)增加服務(wù)器的方式得以實(shí)現(xiàn)。阿帕奇的優(yōu)勢(shì)在于Apache基金會(huì)下有一個(gè)項(xiàng)目組,將這個(gè)組織的開(kāi)發(fā)愛(ài)好者們聚集在一起,不斷對(duì)他的源碼進(jìn)行優(yōu)化和持續(xù)開(kāi)放,不斷完善阿帕奇的各項(xiàng)功能,目前世界上很多著名的網(wǎng)站如:雅虎、亞馬孫、W3 Consortium等。這些網(wǎng)站的服務(wù)器都是使用Apache搭建。他的移植性能優(yōu)越。并且可以運(yùn)行在幾乎所有的Unix、Windows、Linux系統(tǒng)平臺(tái)上。
3后起之秀Nginx的特點(diǎn)和優(yōu)勢(shì)
Nginx是由俄羅斯軟件工程師Igor svsoev編寫(xiě)的免費(fèi)開(kāi)源Web服務(wù)器。自從2004年上市以來(lái),nginx專注于高性能,高并發(fā)性和低內(nèi)存使用。并且其在負(fù)載均衡,緩存,訪問(wèn)和帶寬控制以及與各種應(yīng)用程序高效集成等方面的特性,都使得它逐步深受廣大用戶青睞。事實(shí)上Nginx是一款輕量級(jí)的Web服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,在BSD-like協(xié)議下發(fā)行。Nginx是通過(guò)異步的、非阻塞的、事件驅(qū)動(dòng)的方式在實(shí)現(xiàn)的。Nginx的工作進(jìn)程是單線程的,每個(gè)線程可以異步的處理大量的用戶請(qǐng)求。動(dòng)態(tài)內(nèi)容處理是Nginx的痛點(diǎn)。Nginx處理動(dòng)態(tài)內(nèi)容的效率并不高,且需借助外部的處理器??傊甆ginx的特點(diǎn)是并發(fā)處理能力強(qiáng),并且在服務(wù)器軟件運(yùn)行過(guò)程中軟件本身占用的內(nèi)存比例很少,能大大節(jié)約服務(wù)器的內(nèi)存資源。目前在我國(guó)國(guó)內(nèi)被廣泛使用。使用nginx搭建網(wǎng)站的著名網(wǎng)站平臺(tái)有:騰訊、淘寶、京東、百度、新浪、網(wǎng)易等。它的并發(fā)處理能力在N6-網(wǎng)站服務(wù)器軟件對(duì)比中首屈一指。
4簡(jiǎn)單易用微軟IIS的特點(diǎn)、優(yōu)勢(shì)和不足
IIS是Internet Information Services的縮寫(xiě),是由美國(guó)微軟公司開(kāi)發(fā)和提供的服務(wù)器搭建軟件。一般我們學(xué)習(xí)搭建WEB服務(wù)器的人門都是使用IIS。它是隨著正版WINDOWS發(fā)行的可選組件包。它不能安裝在除WINDOWS以外的其他操作系統(tǒng)中。最早在WIN NT中出現(xiàn)IIS可選組件,后續(xù)微軟發(fā)行的WINDOWS版本都自帶。由于IIS是隨WINDOWS正版一起發(fā)售,那么在合法使用IIs時(shí)就必須付費(fèi)。所以他是付費(fèi)的WEB服務(wù)器軟件。使用IIS搭建WEB服務(wù)器非常簡(jiǎn)單易學(xué)。新手能使用IIS迅速搭建一個(gè)WEB站點(diǎn),并提供所需的FIT服務(wù)和郵件服務(wù)。但是IIS又有很多不足,IIS經(jīng)常會(huì)出現(xiàn)一些莫名其妙的錯(cuò)誤,有時(shí)搭建的WEB服務(wù)器會(huì)出現(xiàn)假死或出現(xiàn)500錯(cuò)誤。在安全性方面,IIS容易受到遠(yuǎn)程執(zhí)行漏洞的威脅,黑客容易通過(guò)遠(yuǎn)程執(zhí)行漏洞在系統(tǒng)賬號(hào)中執(zhí)行任意代碼。導(dǎo)致數(shù)據(jù)丟失或機(jī)器藍(lán)屏。它的最大不足是在系統(tǒng)的可移植性方面,如果離開(kāi)了WINDOWS的環(huán)境,它將無(wú)法生存,也無(wú)法把WEB站點(diǎn)移植到其他操作系統(tǒng)平臺(tái)上。
5結(jié)語(yǔ)
主流和代表性的WEB服務(wù)器軟件Apache、Nginx以及微軟的IIS各有特點(diǎn)、優(yōu)勢(shì)也各有不足,下面對(duì)這三者進(jìn)行簡(jiǎn)單的對(duì)比分析,Apache和Nginx最大的不同在于它們對(duì)連接的處理方式。Apache提供一系列多重處理模塊,通過(guò)這些多重處理模塊來(lái)使用操作系統(tǒng)的資源,對(duì)進(jìn)程和線程池進(jìn)行管理,控制處理用戶請(qǐng)求。與Apache不同,Nginx是通過(guò)異步的、非阻塞的、事件驅(qū)動(dòng)的方式在實(shí)現(xiàn)的。Nginx的工作進(jìn)程是單線程的,每個(gè)線程可以異步的處理大量的用戶請(qǐng)求。Apache擁有豐富的模塊組件支持,穩(wěn)定性強(qiáng),BUG少,動(dòng)態(tài)內(nèi)容處理強(qiáng)。Ngi.x輕量級(jí),占用資源少,負(fù)載均衡,高并發(fā)處理強(qiáng),靜態(tài)內(nèi)容處理高效。從付費(fèi)角度來(lái)看Apache是完全免費(fèi)的,不需要支付任何費(fèi)用就可以免費(fèi)下載使用,而Ⅱs是收費(fèi)的,但在配置角度而言,Apache的配置幣IIS要復(fù)雜,不過(guò)已經(jīng)配置完畢就可以長(zhǎng)期使用。目前很多公司和企業(yè)不希望聘請(qǐng)專門的網(wǎng)絡(luò)技術(shù)來(lái)維護(hù)自己的網(wǎng)站,但因?yàn)楣拘麄鞯男枰直仨氂凶约簜€(gè)陛化的站點(diǎn),尤其是一些簡(jiǎn)單站點(diǎn)只用于對(duì)外宣傳和展示,系統(tǒng)復(fù)雜度不高,因此必然會(huì)找上手相對(duì)容易的工具來(lái)搭建自己的WEB服務(wù)站點(diǎn),IIS開(kāi)起來(lái)非常容易,很方便地就能讓IIS32作,對(duì)外發(fā)布自己的站點(diǎn)。存在即有道理,Apache和Nginx、IIS作為WEB服務(wù)各有所長(zhǎng),三者并不存在將來(lái)誰(shuí)會(huì)完全替代誰(shuí)。關(guān)鍵在于用戶要認(rèn)真考慮清楚自己的應(yīng)用場(chǎng)景,根據(jù)自己的需求和情況來(lái)斟酌選擇哪個(gè)產(chǎn)品,畢竟適合自己的才是最好的。