apache、lighttpd、nginx的優缺點總結分析

2019年08月24日20:13:30 科技 1225

概述

今天主要對比下這幾個主流的WEB伺服器:lighttpd、apache、nginx


1、LIGHTTPD

1.1簡述

​ Lighttpd 是一個德國人領導的開源Web伺服器軟體,具有非常低的內存開銷,cpu佔用率低,效能好,以及豐富的模塊等特點。支持FastCGI, CGI, Auth,輸出壓縮(output compress), URL重寫, Alias等重要功能。

apache、lighttpd、nginx的優缺點總結分析 - 天天要聞

它使用FastCGI方式運行PHP時,將使用很少的PHP進程響應很大的並發量。

1.2 優點

1)從穩定性上看,FastCGI是以獨立的進程池運行來CGI,單獨一個進程死掉,系統可以很輕易的丟棄,然後重新分配新的進程來運行邏輯;

2)從安全性上看, FastCGI和宿主的server完全獨立, fastcgi怎麼down也不會把server搞垮;

3)從性能上看, FastCGI把動態邏輯的處理從server中分離出來,大負荷的IO處理還是留給宿主server,這樣宿主server可以一心一意作IO,對於一個普通的動態網頁來說,邏輯處理可能只有一小部分, 大量的圖片等靜態IO處理完全不需要邏輯程序的參與(注1)

4)從擴展性上講,FastCGI是一個中立的技術標準,完全可以支持任何語言寫的處理程序(php,java,python…)

1.3 支持操作系統

  • Linux(binary packages for FC3,SuSE,Debian,Gentoo,PLD-Linux,OpenWRT)
  • BSD(FreeBSD,NetBSD,OpenBSD,MacOSX)
  • SGIIRIX
  • Windows(Cygwin)While it is known to compile cleanly on
  • Solaris
  • AIX

2、APACHE

2.1 簡述

​ Apache是世界排名第一的web伺服器,根據所作的調查,世界上百分之五十以上的web伺服器在使用apache。

apache、lighttpd、nginx的優缺點總結分析 - 天天要聞

​ Apache是以進程為基礎的結構,進程要比線程消耗更多的系統開支,不太適合於多處理器環境,因此,在一個Apache Web站點擴容時,通常是增加伺服器或擴充群集節點而不是增加處理器。世界上很多著名的網站如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的產物。

2.2 優點

  • 幾乎可以運行在所有的計算機平台上.
  • 支持最新的http/1.1協議
  • 簡單而且強有力的基於文件的配置(httpd.conf).
  • 支持通用網關介面(cgi)
  • 支持虛擬主機.
  • 支持http認證.
  • 集成perl.
  • 集成的代理伺服器
  • 可以通過web瀏覽器監視伺服器的狀態,可以自定義日誌.
  • 支持伺服器端包含命令(ssi).
  • 支持安全socket層(ssl).
  • 具有用戶會話過程的跟蹤能力.
  • 支持fastcgi
  • 支持java servlets

2.3 支持操作系統

  • Linux
  • Windows
  • 其他

3、NGINX

3.1簡述

​ Nginx是俄羅斯人編寫的十分輕量級的HTTP伺服器,Nginx,它的發音為「engine X」, 是一個高性能的HTTP和反向代理伺服器,同時也是一個IMAP/POP3/SMTP代理伺服器。Nginx是由俄羅斯人 Igor Sysoev為俄羅斯訪問量第二的 Rambler.ru站點開發。Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,並在一個BSD-like 協議下發行。其特點是佔有內存少,並發能力強,事實上nginx的並發能力確實在同類型的網頁伺服器中表現較好,中國大陸使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等。

Nginx以事件驅動(epoll)的方式編寫,所以有非常好的性能,同時也是一個非常高效的反向代理、負載平衡,有研究表明能支持高達 50,000個並發連接數。。其擁有匹配 Lighttpd的性能,同時還沒有Lighttpd的內存泄漏問題,而且Lighttpd的mod_proxy也有一些問題並且很久沒有更新。但是Nginx並不支持cgi方式運行,原因是可以減少因此帶來的一些程序上的漏洞。所以必須使用FastCGI方式來執行PHP程序。

3.2優點

  • 處理靜態文件,索引文件以及自動索引;
  • 打開文件描述符緩衝;
  • 無緩存的反向代理加速,簡單的負載均衡和容錯;
  • FastCGI,簡單的負載均衡和容錯;
  • 模塊化的結構。包括gzipping, byte ranges, chunked responses,以及 SSI-filter等filter。如果由FastCGI或其它代理伺服器處理單頁中存在的多個SSI,則這項處理可以並行運行,而不需要相互等待。
  • Nginx專為性能優化而開發,性能是其最重要的考量,實現上非常注重效率
  • Nginx具有很高的穩定性。其它HTTP伺服器,當遇到訪問的峰值,或者有人惡意發起慢速連接時,也很可能會導致伺服器物理內存耗盡頻繁交換,失去響應,只能重啟伺服器。例如當前apache一旦上到200個以上進程,web響應速度就明顯非常緩慢了。而Nginx採取了分階段資源分配技術,使得它的CPU與內存佔用率非常低。nginx官方表示保持10,000個沒有活動的連接,它只佔2.5M內存,所以類似DOS這樣的攻擊對nginx來說基本上是毫無用處的。就穩定性而言,nginx比lighthttpd更勝一籌。
  • Nginx支持熱部署。它的啟動特別容易,並且幾乎可以做到7*24不間斷運行,即使運行數個月也不需要重新啟動。你還能夠在不間斷服務的情況下,對軟體版本進行進行升級。

3.3操作系統

  • Linux
  • Windows(移植版本)
  • 其他

3.4 推薦架構

nginx作為最前端的web cache系統,通常的架構如下

apache、lighttpd、nginx的優缺點總結分析 - 天天要聞

這個結構的優點:

  1. 可以使用nginx前端進行諸多複雜的配置,這些配置從前在squid是沒法做或者做起來比較麻煩的,比如針對目錄的防盜鏈。
  2. nginx前端可以直接轉發部分不需要緩存的請求。
  3. 因為nginx效率高於squid,所以某些情況下可以利用nginx的緩存來減輕squid壓力。
  4. 可以實現url hash等分配策略
  5. 可以在最前端開啟gzip壓縮,這樣後面的squid緩存的純粹是無壓縮文檔,可以避免很多無謂的穿透。
  6. 因為nginx穩定性比較高,所以lvs不需要經常調整,通過nginx調整就可以。
  7. squid的文件打開數按默認的1024就綽綽有餘,不過處理的請求可一個都不會少。
  8. 可以啟用nginx的日誌功能取代squid,這樣做實時點擊量統計時可以精確定位到url,不必要再用低效率的grep來過濾。
  9. 因為nginx的負載能力高於squid,所以在用lvs分流時可以不必分得特別均衡,出現單點故障的幾率比較低。

nginx和squid配合搭建的web伺服器前端系統架構:

apache、lighttpd、nginx的優缺點總結分析 - 天天要聞

前端的lvs和squid,按照安裝方法,把epoll打開,配置文件照搬,基本上問題不多。

這個架構和app_squid架構的區別,也是關鍵點就是:加入了一級中層代理,中層代理的好處實在太多了:

  1. gzip壓縮:壓縮可以通過nginx做,這樣,後台應用伺服器不管是apache、resin、lighttpd甚至iis或其他古怪伺服器,都不用考慮壓縮的功能問題。
  2. 負載均衡和故障屏蔽:nginx可以作為負載均衡代理使用,並有故障屏蔽功能,這樣,根據目錄甚至一個正則表達式來制定負載均衡策略變成了小case。
  3. 方便的運維管理,在各種情況下可以靈活制訂方案。
  4. 許可權清晰:這台機器就是不寫程序的維護人員負責,程序員一般不需要管理這台機器,這樣假如出現故障,很容易能找到正確的人。對於應用伺服器和資料庫伺服器,最好是從維護人員的視線中消失,我的目標是,這些服務只要能跑得起來就可以了,其它的事情全部可以在外部處理掉。

3種WEB伺服器的比較

以下是針對這三個web伺服器的一些比較:

apache、lighttpd、nginx的優缺點總結分析 - 天天要聞


從上面的分析比較建議的一種方案是:

  • Apache後台伺服器(主要處理php及一些功能請求 如:中文url)
  • Nginx 前端伺服器(利用它佔用系統資源少得優勢來處理靜態頁面大量請求)
  • Lighttpd圖片伺服器

後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~

apache、lighttpd、nginx的優缺點總結分析 - 天天要聞

科技分類資訊推薦

虛假信息面前,AI為何「智商下線」? - 天天要聞

虛假信息面前,AI為何「智商下線」?

□曹欣怡(雲南財經大學)7月4日,「DeepSeek給王一博道歉是假的」衝上微博熱搜。據稱,這家人工智慧公司因內容審核疏漏,將王一博與「李愛慶腐敗案」不當關聯,損害了其名譽,並已作出正式道歉。
無3C標識充電寶「禁飛」首周:民航與鐵路安檢標準不一 - 天天要聞

無3C標識充電寶「禁飛」首周:民航與鐵路安檢標準不一

自6月28日起,民航局禁止旅客攜帶無3C標識及被召回的充電寶乘坐境內航班,另一方面,鐵路部門並不查驗充電寶3C認證標識或品牌。針對充電寶「禁飛」一周來的落實情況,記者進行了走訪調查。濟南遙牆國際機場:鼓包或破損的充電寶也「禁飛」7月4日,濟南遙牆國際機場工作人員向記者表示,該機場嚴格執行民航局通知,禁止旅客...
最新!白雲機場:充電寶7天內免費暫存 - 天天要聞

最新!白雲機場:充電寶7天內免費暫存

今天(7月4日)是民航局充電寶乘機攜帶新政策正式實施的第6天,記者從廣州白雲機場獲悉,旅客攜帶不合規充電寶的數量呈明顯減少趨勢。據悉,白雲機場提供充電寶暫存服務供旅客選擇,兩座航站樓均設有暫存點,7天內免費暫存,7天後視為自棄處理。根據民航局通知要求,為切實保障航空運行安全,6月28日起禁止旅客攜帶沒有3C標...
小鵬G7正式上市 極致AI科技與滿配舒適兼得 - 天天要聞

小鵬G7正式上市 極致AI科技與滿配舒適兼得

日前,小鵬汽車正式發布全新AI智能家庭SUV——小鵬G7。新車共推出602長續航Max、702超長續航Max、702超長續航Ultra三個版本,上市即刻可以交付。 作為全球首款L3級算力的AI汽車,小鵬G7不僅實現了2250TOPS有效算力以及本地端VLA+VLM大模型的行業首發,更以行業領先的「追光全景」抬頭顯示、「857」的領先三電配置、太極AI底...
平板電腦+AI?榮耀平板MagicPad3的AI到底能做些什麼? - 天天要聞

平板電腦+AI?榮耀平板MagicPad3的AI到底能做些什麼?

在今年上半年的MWC2025上,榮耀正式公布了阿爾法戰略,宣布由手機製造商向AI終端生態公司所轉型,在今年,我們已經看到了很多榮耀新品搭載了其最新的AI技術如影像技術AiMAGE、移動AI智能體YOYO等。與此同時,在公布阿爾法戰略僅不到半年,榮耀正式更新了其旗艦平板電腦產品MagicPad3,並毫無例外的加入了諸多AI方面的功能,...