最流行的5大開源Web服務器

超過80%的web應用程序和網站都是使用的開源web服務器。在本文中,咱們將介紹目前市場上最流行的5大開源web服務器,並簡要回顧它們的歷史,技術特性以及更多相關內容,方便你本身可以更加輕鬆的部署這些流行的web服務器。php

根據維基百科介紹,web服務器是「經過HTTP協議處理web請求的計算機系統」(a computer system that processes requests via HTTP)。這個詞能夠指代整個系統,也能夠指代可接收和管理HTTP請求的的程序。本文中介紹的web服務器指的是爲終端用戶處理web請求的程序。nginx

NGINX服務器web

Igor Sysoev從2002年開始開發NGINX,並在2004年發佈了第一個公開版本。NGINX的開發是爲了解決C10K(C10K是如何處理1萬個併發鏈接的簡寫)問題,目前,全球有超過30%的網站在使用它。瀏覽器

Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在一個BSD-like 協議下發行。其特色是佔有內存少,併發能力強,事實上nginx的併發能力確實在同類型的網頁服務器中表現較好,中國大陸使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等。緩存

NGINX依靠異步事件驅動架構來幫助其處理大量的併發會話,因爲其對資源的輕量利用和伸縮自如的特性,它成爲了廣受歡迎的web服務器。tomcat

NGINX在類BSD(Berkeley Software Distribution)許可協議的受權下發布的,它不只可做爲web服務器進行部署,也可做爲代理服務器或負載平衡器。你能夠在NGINX社區網站找到它的更多信息。安全

NGINX的特色:服務器

服務器網絡

Nginx做爲負載均衡服務器:Nginx 既能夠在內部直接支持 Rails 和 PHP 程序對外進行服務,也能夠支持做爲 HTTP代理服務器對外進行服務。Nginx採用C進行編寫,不管是系統資源開銷仍是CPU使用效率都比 Perlbal 要好不少。架構

處理靜態文件,索引文件以及自動索引;打開文件描述符緩衝。

無緩存的反向代理加速,簡單的負載均衡和容錯。

FastCGI,簡單的負載均衡和容錯。

模塊化的結構。包括 gzipping, byte ranges, chunked responses,以及 SSI-filter 等 filter。若是由 FastCG或其它代理服務器處理單頁中存在的多個 SSI,則這項處理能夠並行運行,而不須要相互等待。

支持 SSL 和 TLSSNI。

代碼

Nginx代碼徹底用C語言從頭寫成,已經移植到許多體系結構和操做系統,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows。Nginx有本身的函數庫,而且除了zlib、PCRE和OpenSSL以外,標準模塊只使用系統C庫函數。並且,若是不須要或者考慮到潛在的受權衝突,能夠不使用這些第三方庫。

代理服務器

做爲郵件代理服務器:Nginx 同時也是一個很是優秀的郵件代理服務器(最先開發這個產品的目的之一也是做爲郵件代理服務器),Last.fm 描述了成功而且美妙的使用經驗。

Nginx 是一個安裝很是的簡單、配置文件很是簡潔(還可以支持perl語法)、Bug很是少的服務器。Nginx 啓動特別容易,而且幾乎能夠作到7*24不間斷運行,即便運行數個月也不須要從新啓動。你還可以不間斷服務的狀況下進行軟件版本的升級。

Lighttpd服務器

Lighttpd 是一個德國人領導的開源Web服務器軟件,其根本的目的是提供一個專門針對高性能網站,安全、快速、兼容性好而且靈活的web server環境。具備很是低的內存開銷、cpu佔用率低、效能好以及豐富的模塊等特色。

Lighttpd以其低內存佔用,低CPU負載和處理速度的優化而獨立於世,它使用事件驅動架構,對大量並行鏈接進行優化,支持FastCGI, SCGI, Auth,Output-compression, URL-rewriting等多種功能。Lighttpd主要用於Catalyst和Ruby on Rails的web框架。經過項目主頁,你能夠找到它的更多信息。

Apache

Apache HTTP Server 簡稱爲 Apache。它誕生於1995年,並在2015年2月20日度過了其20歲的生日。全球超過52%的網站使用了Apache,它是目前最流行的web服務器。

Apache,中文名:阿帕奇,是Apache軟件基金會的一個開放源碼的網頁服務器,能夠在大多數計算機操做系統中運行,因爲其多平臺和安全性被普遍使用,是最流行的Web服務器端軟件之一。它快速、可靠而且可經過簡單的API擴展,將Perl/Python等解釋器編譯到服務器中。開發者 Apache軟件基金會。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基金會的項目頁面上找到它的更多信息。

Apache Tomcat

Apache只支持靜態網頁,但像php,cgi,jsp等動態網頁就須要Tomcat來處理。 Tomcat是由Apache軟件基金會下屬的Jakarta項目開發的一個Servlet容器,按照Sun Microsystems提供的技術規範,實現了對Servlet和JavaServer Page(JSP)的支持,並提供了做爲Web服務器的一些特有功能,如Tomcat管理和控制平臺、安全域管理和Tomcat閥等。因爲Tomcat自己也內含了一個HTTP服務器,它也能夠被視做一個單獨的Web服務器。可是,不能將 Tomcat 和 Apache Web 服務器混淆,Apache Web Server 是一個用 C 語言實現的 HTTP web server;這兩個 HTTP web server 不是捆綁在一塊兒的。Apache Tomcat 包含了一個配置管理工具,也能夠經過編輯 XML 格式的配置文件來進行配置。Apache,nginx,tomcat並稱爲網頁服務三劍客,可見其應用度之普遍。

Apache Tomcat是在Apache許可證 2.0 版的受權下進行發佈的,一般用於運行Java應用程序。此外,它可以經過Coyote的擴展,扮演爲本地文件HTTP文檔服務的普通服務器的角色。更多詳細的信息能夠查看Apache Tomcat項目網站。

另外,Apache Tomcat還常常內嵌在其它開源Java應用服務器中,如JBoss, Wildfly和Glassfish。

Apache有多種產品,能夠支持SSL技術,支持多個虛擬主機。Apache是以進程爲基礎的結構,進程要比線程消耗更多的系統開銷,不太適合於多處理器環境,所以,在一個Apache Web站點擴容時,一般是增長服務器或擴充羣集節點而不是增長處理器。到目前爲止Apache仍然是世界上用的最多的Web服務器,市場佔有率達60%左右。世界上不少著名的Yahoo!、W3 Consortium、Financial Times等都是Apache的產物,它的成功之處主要在於它的源代碼開放、有一支開放的開發隊伍、支持跨平臺的應用(能夠運行在幾乎全部的Unix、 Windows、Linux系統平臺上)以及它的可移植性等方面。

Apache的誕生極富有戲劇性。當NCSA WWW服務器項目停頓後,那些使用NCSA WWW服務器的人們開始交換他們用於該服務器的補丁程序,他們也很快認識到成立管理這些補丁程序的論壇是必要的。就這樣,誕生了Apache Group,後來這個團體在NCSA的基礎上建立了Apache。若是你準備選擇Web服務器,毫無疑問Apache是你的最佳選擇。

Node.js

NNode.js是一個Javascript運行環境(runtime environment),發佈於2009年5月,由Ryan Dahl開發,實質是對Chrome V8引擎進行了封裝。Node.js對一些特殊用例進行優化,提供替代的API,使得V8在非瀏覽器環境下運行得更好。

V8引擎執行Javascript的速度很是快,性能很是好。 [1] Node.js是一個基於Chrome JavaScript運行時創建的平臺, 用於方便地搭建響應速度快、易於擴展的網絡應用。Node.js 使用事件驅動, 非阻塞I/O 模型而得以輕量和高效,很是適合在分佈式設備上運行數據密集型的實時應用。

相比起其它流行的web服務器,Node.js的不一樣之處在於它是一個構建網絡應用的跨平臺運行環境,擁有可勝任異步I/0的事件驅動構架。這些設計選擇可以優化應用程序的數據吞吐量和可伸縮性,支持實時通訊和網頁遊戲。 Node.js 還強調了web開發堆棧上的差別,Node.js清楚地顯示做爲HTML、 CSS或者JavaScript堆棧的一部分,在這一點上與Apache或者NGINX同時做爲多個不一樣軟件堆棧的一部分的理念正好是相反的。

Node.js是在混合受權協議下發布的,更多信息能夠查看該項目網站。

在幾年的時間裏,Node.JS逐漸發展成一個成熟的開發平臺,吸引了許多開發者。有許多大型高流量網站都採用Node.JS進行開發,此外,開發人員還可使用它來開發一些快速移動Web框架。

除了Web應用外,NodeJS也被應用在許多方面,NodeJS在其它方面所開發的十大使人神奇的項目,這些項目涉及到應用程序監控、媒體流、遠程控制、桌面和移動應用等等。

小貼士

若是你正在尋找一個流行的web服務器,我強烈建議你下載 LAMP(Linux, Apache, MySQL, PHP)或者LEMP(Linux, NGINX, MySQL, PHP)配套堆棧。此外,還能夠根據根據你本身的不一樣喜愛,更換搭配多種這樣的配套堆棧。這種配套堆棧一般都提供了一鍵安裝支持或者Linux上的軟件包管理器的安裝支持。

原文:https://mp.weixin.qq.com/s/z7S65VvVsrXWLhAoSdKAcw

相關文章
相關標籤/搜索