統計數據顯示,超過80%的web應用程序和網站都是使用的開源web服務器。在本文中,我們將介紹目前市場上最流行的5大開源web服務器,并簡要回顧它們的歷史,技術特性以及更多相關內容,方便你自己能夠更加輕松的部署這些流行的web服務器。
根據維基百科介紹,web服務器是“通過HTTP協議處理web請求的計算機系統”(a computer system that processes requests via HTTP)。這個詞可以指代整個系統,也可以指代可接收和管理HTTP請求的的程序。本文中介紹的web服務器指的是為終端用戶處理web請求的程序。
Apache HTTP Server
Apache HTTP Server,我們常常稱之為httpd,或者更簡單的Apache。它誕生于1995年,并在2015年2月20日度過了其20歲的生日。全球超過52%的網站使用了Apache,它是目前最流行的web服務器。
Apache httpd通常運行在Linux上,也可以部署在OS X和Windows之上,它的發布得到Apache許可證 2.0 版的許可。該web服務器自身使用模塊化架構,加載其它額外的模塊可以作為其額外特性。比如,加載mod_proxy模塊可以增加服務器代理/ 網關的功能,加載mod_proxy_balancer模塊可以為所有支持的協議提供負載平衡。在v2.4版本里,Apache可通過全新的mod_http2模塊支持HTTP/2。
從1996年開始,Apache HTTP Server就已經是最為流行的web服務器了,這與它擁有偉大的文檔和軟件項目集成支持的特性是分不開的,你可以在Apache基金會的項目頁面上找到它的更多信息。
NGINX
Igor Sysoev從2002年開始開發NGINX,并在2004年發布了第一個公開版本。NGINX的開發是為了解決C10K(C10K是如何處理1萬個并發連接的簡寫)問題,目前,它是第二流行的開源web服務器,全球有超過30%的網站在使用它。
NGINX依靠異步事件驅動架構來幫助其處理大量的并發會話,由于其對資源的輕量利用和伸縮自如的特性,它成為了廣受歡迎的web服務器。
NGINX在類BSD(Berkeley Software Distribution)許可協議的授權下發布的,它不僅可作為web服務器進行部署,也可作為代理服務器或負載平衡器。你可以在NGINX社區網站找到它的更多信息。
Apache Tomcat
Apache Tomcat是一個可作為web服務器的開源Java servlet容器。Java servlet是可擴展服務器特性的Java程序,雖然servlets可以對任何類型的請求作出響應,但是它還是最常用于Web服務器上的應用實施。這些web servlet在Java上的作用與PHP和ASP.NET等其它動態web技術類似。Tomcat的代碼庫是由Sun Microsystems公司在1999年捐贈給Apache軟件基金會的,并在2005年成為Apache的頂級項目,目前有不到1%的網站在使用它。
Apache Tomcat是在Apache許可證 2.0 版的授權下進行發布的,通常用于運行Java應用程序。此外,它能夠通過Coyote的擴展,扮演為本地文件HTTP文檔服務的普通服務器的角色。更多詳細的信息可以查看Apache Tomcat項目網站。
另外,Apache Tomcat還經常內嵌在其它開源Java應用服務器中,如JBoss,Wildfly和Glassfish。
Node.js
Node.js是一個用于web服務器等網絡應用的服務器端JavaScript環境。由于其較小的市場定位,在所有網站中只有0.2%使用Node.js。Node.js最初是由Ryan Dahl在2009年編寫的,現在Node.js項目由Node.js基金會進行管理,并在Linux基金會的合作項目計劃下快速發展。
相比起其它流行的web服務器,Node.js的不同之處在于它是一個構建網絡應用的跨平臺運行環境,擁有可勝任異步I/0的事件驅動構架。這些設計選擇能夠優化應用程序的數據吞吐量和可伸縮性,支持實時通信和網頁游戲。 Node.js 還強調了web開發堆棧上的差異,Node.js清楚地顯示作為HTML、 CSS或者JavaScript堆棧的一部分,在這一點上與Apache或者NGINX同時作為多個不同軟件堆棧的一部分的理念正好是相反的。
Node.js是在混合授權協議下發布的,更多信息可以查看該項目網站。
Lighttpd
Lighttpd,于2003年3月首次發布,目前全球有大約0.1%的網站在使用它,它是在BSD的許可協議下發布的。
Lighttpd以其低內存占用,低CPU負載和處理速度的優化而獨立于世,它使用事件驅動架構,對大量并行連接進行優化,支持FastCGI, SCGI, Auth,Output-compression, URL-rewriting等多種功能。Lighttpd主要用于Catalyst和Ruby on Rails的web框架。通過項目主頁,你可以找到它的更多信息。
小貼士
如果你正在尋找一個流行的web服務器,我強烈建議你下載 LAMP(Linux, Apache, MySQL, PHP)或者LEMP(Linux, NGINX, MySQL, PHP)配套堆棧。此外,還可以根據根據你自己的不同喜好,更換搭配多種這樣的配套堆棧。這種配套堆棧通常都提供了一鍵安裝支持或者Linux上的軟件包管理器的安裝支持。
本文翻譯自opensource.com