技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運(yùn)營(yíng)

贊助商

分類(lèi)目錄

贊助商

最新文章

搜索

選 Nginx 還是 Apache - 5大因素助你決定

作者:admin    時(shí)間:2022-3-22 11:27:49    瀏覽:

Nginx 和 Apache 是 Internet 上最常用的兩個(gè) Web 服務(wù)器。他們共同擁有超過(guò) 60% 的總市場(chǎng)份額。

但是你應(yīng)該使用哪一個(gè)?這正是本文的目的。

本文將通過(guò)5大因素多方面比較,幫助你選擇。此外,前面一文的介紹可能對(duì)你的選擇也有幫助:

 選 Nginx 還是 Apache - 5大因素助你決定

性能表現(xiàn)(Performance)

在選擇像 Web 服務(wù)器這樣的關(guān)鍵軟件時(shí),你應(yīng)該首先考慮的是它的性能特征。

不僅是它們每秒可以服務(wù)多少個(gè)請(qǐng)求,還包括它們?cè)谥刎?fù)載下的表現(xiàn)以及資源使用情況(RAM、CPU)是什么樣的。

這是我們的測(cè)試設(shè)置:

  • Ubuntu 18.04
  • Apache 2.4.29 (mpm_event)
  • Nginx 1.14.0
  • 默認(rèn)設(shè)置
  • 1GB 內(nèi)存
  • 1 個(gè) CPU

作為基準(zhǔn)測(cè)試工具,我們將使用具有以下設(shè)置:

  • -d 60(測(cè)試持續(xù)時(shí)間)
  • -c 40(并發(fā))
  • --latency(延遲分布)

我們的目標(biāo) URL 返回一個(gè)不涉及服務(wù)器語(yǔ)言的小型 HTML 文件。

運(yùn)行這個(gè)測(cè)試,我們得到以下結(jié)果(請(qǐng)求/秒):

Apache    Nginx
670.53     660.15

似乎 Nginx 和 Apache 的速度差不多!

但是資源使用情況呢?

運(yùn)行此測(cè)試時(shí),Apache 平均 CPU 使用率為 20% 和 18MB RAM:

 Apache 平均 CPU 使用率
Apache 平均 CPU 使用率

Nginx CPU 使用率平均為 12%,只有 8MB RAM:

Nginx CPU 使用率 
Nginx CPU 使用率

雖然此基準(zhǔn)測(cè)試可能無(wú)法代表所有實(shí)際用例,并且你應(yīng)該考慮為你的特定設(shè)置運(yùn)行自己的基準(zhǔn)測(cè)試,但它可以讓你大致了解這些服務(wù)器的性能。

另外,Nginx wiki上有一篇文章比較了性能影響。

性能影響 Nginx 與 Apache
性能影響 Nginx 與 Apache

總之,如果你最關(guān)心的是性能和資源的有效利用,你應(yīng)該考慮使用 Nginx。

可擴(kuò)展性(Extensibility)

兩臺(tái)服務(wù)器都具有一套很好的核心功能,對(duì)于大多數(shù)人來(lái)說(shuō)應(yīng)該足夠了。

但有時(shí)你需要一點(diǎn)額外的東西。

這就是你可以使用 modules 擴(kuò)展兩個(gè)服務(wù)器的原因。

模塊可以編譯到主服務(wù)器二進(jìn)制文件中,也可以作為動(dòng)態(tài)模塊添加,可以與二進(jìn)制文件分開(kāi)安裝。

動(dòng)態(tài)模塊更靈活,因?yàn)樗鼈兛梢宰孕懈拢憧梢蕴砑有履K而無(wú)需重新編譯服務(wù)器。

大多數(shù) Apache 模塊都是動(dòng)態(tài)的,但 Nginx 最近(版本 1.9.11,2016 年發(fā)布)開(kāi)始支持此功能。

現(xiàn)在,讓我們看一下兩個(gè)服務(wù)器的一些有用模塊。

  • modsecurity:可用于 Apache。該模塊在您的應(yīng)用程序前面添加了一個(gè) Web 應(yīng)用程序防火墻 (WAF)。有一個(gè) Nginx 版本,但是好像沒(méi)有維護(hù),可以用Naxsi代替。
  • page_speed:適用于 Apache 和 Nginx。該模塊可以動(dòng)態(tài)優(yōu)化圖像并添加其他優(yōu)化以改善頁(yè)面加載時(shí)間。
  • ngx_mruby / mod_ruby:可用于 Apache 和 Nginx。該模塊允許你使用 Ruby 編程語(yǔ)言來(lái)處理請(qǐng)求并做出決定以重定向到另一個(gè)頁(yè)面、返回一些文件內(nèi)容等。nginx 版本維護(hù)良好且速度更快。

兩種服務(wù)器都可以使用許多流行的模塊,因此在決定使用哪種服務(wù)器時(shí),模塊可用性可能不是一個(gè)因素。

安裝新模塊:

向 Apache 添加新模塊比向 Nginx 添加新模塊更容易。

你可以從包存儲(chǔ)庫(kù)安裝 Apache 模塊,然后使用a2enmod命令啟用它并重新啟動(dòng)服務(wù)器。

Nginx 可能需要你從源代碼編譯以安裝某些模塊,因?yàn)閯?dòng)態(tài)模塊必須針對(duì)你正在運(yùn)行的 Nginx 的相同版本構(gòu)建。

但是,你可以在非生產(chǎn)服務(wù)器上執(zhí)行此操作,然后將動(dòng)態(tài)模塊(.so 文件)復(fù)制到生產(chǎn)中。

如果你認(rèn)為你需要經(jīng)常更改模塊,則需要考慮這一點(diǎn),但情況并非如此。

人氣(Popularity)

一款開(kāi)源軟件的受歡迎程度很重要,因?yàn)樽钍軞g迎的軟件通常會(huì)得到最多的關(guān)注。這可以轉(zhuǎn)化為更好的文檔,找到特定問(wèn)題的解決方案的能力以及軟件本身的維護(hù)程度。

那么 Apache 和 Nginx 到底有多受歡迎?

根據(jù) w3techs 的數(shù)據(jù),Nginx 的市場(chǎng)份額一直在穩(wěn)步增長(zhǎng),而Apache的市場(chǎng)份額卻在逐步下降。在2019年,Nginx的市場(chǎng)份額開(kāi)始超過(guò)Apache。

網(wǎng)絡(luò)服務(wù)器使用 
網(wǎng)絡(luò)服務(wù)器使用

 這些數(shù)據(jù)與全球整體 Web 服務(wù)器有關(guān),但如果我們對(duì)排名前 100 萬(wàn)的網(wǎng)站進(jìn)行抽樣,Nginx 已經(jīng)存在一段時(shí)間了:

 使用 Nginx 的網(wǎng)站百分比
使用 Nginx 的網(wǎng)站百分比

谷歌搜索趨勢(shì)似乎也反映了這一事實(shí):

 Google 搜索趨勢(shì):Nginx 與 Apache
Google 搜索趨勢(shì):Nginx 與 Apache

Netcraft 調(diào)查顯示,Apache 在 2019 年 4 月已被 Nginx 超越。

最常見(jiàn)的用途

讓我們看一下 Apache 和 Nginx 最常見(jiàn)的用途,這將幫助你確定你的用例是否與服務(wù)器自然最擅長(zhǎng)的用途相匹配。

Apache 的優(yōu)勢(shì):

  • 在沒(méi)有外部軟件的情況下運(yùn)行 PHP 應(yīng)用程序(如 Wordpress),mod_php如果它還不是你的發(fā)行版的默認(rèn)安裝的一部分,則只需安裝它。
  • 在共享環(huán)境(如托管服務(wù)提供商)中效果很好,因?yàn)樗С只谀夸浀?code>.htaccess文件配置。

Nginx 的優(yōu)勢(shì):

  • 由于其事件驅(qū)動(dòng)的方法來(lái)處理請(qǐng)求,因此非常有效地服務(wù)靜態(tài)資產(chǎn)。
  • 出于同樣的原因,它是一個(gè)很棒的代理和緩存層。
  • 你可以使用ngx_lua&等模塊輕松實(shí)現(xiàn)自定義邏輯ngx_mruby。Cloudflare在其自定義 WAF(Web 應(yīng)用程序防火墻)中充分利用了這一點(diǎn)。

最后的考慮

在做出最終決定之前還需要考慮一些事項(xiàng):

  • Nginx 以 Nginx PLUS 的形式提供企業(yè)級(jí)解決方案。這增加了專(zhuān)業(yè)支持和一些額外的功能(如監(jiān)控),如果你正在運(yùn)行大型操作,這可能對(duì)你很重要。
  • Apache 和 Nginx 可以一起使用,Nginx 將非靜態(tài)資產(chǎn)請(qǐng)求代理到 Apache。這可能會(huì)顯著增加你的設(shè)置復(fù)雜性,但如果你想同時(shí)使用兩者的功能,則需要考慮這一點(diǎn)。

我們希望對(duì)你有用。

相關(guān)文章

標(biāo)簽: nginx  apache  
x
  • 站長(zhǎng)推薦
/* 左側(cè)顯示文章內(nèi)容目錄 */