Apache Vs Nginx 到底如何選擇最適合您的 Web 伺服器?

2020年09月03日14:12:04 科技 1966

在這篇文章中,我將詳細討論Apache和NGINX伺服器的區別。哪個是最快的 Web 伺服器?它們的主要優點和限制是什麼?你應該去哪一個?

Apache Vs Nginx 到底如何選擇最適合您的 Web 伺服器? - 天天要聞

Apache 和 NGINX 的主要區別在於其設計架構。Apache 使用進程驅動的方法,並為每個請求創建一個新線程。NGINX 使用事件驅動的體系結構來處理一個線程中的多個請求。

什麼是 Apache HTTP 伺服器?

Apache HTTP 伺服器是一種開源跨平台 Web 伺服器,也稱為"httpd"和 Apache。他是Apache 軟體基金會管理其品牌和服務。伺服器由 ASF 下的開放開發人員社區開發和維護。Apache 主要運行在 Linux 上,它支持全球 46% 的網站。它是 LAMP(Linux、Apache、MySQL、PHP)堆棧的關鍵組件。

什麼是 NGINX Web伺服器?

什麼是NGINX?發音為? 它的發音是 「Engine X」 它是伊戈爾·西索耶夫在 2004 年發布的 Web 伺服器。今天,它不僅僅是一個網路伺服器!起初,人們大多使用 Nginx 作為Apache的補充.它主要用於提供靜態文件,但今天,它已演變為一個完整的Web伺服器,處理整個web伺服器任務。Nginx 經常用作反向代理、負載均衡器、郵件代理和 HTTP 緩存。Apache和Nginx都是Linux最常見的網路伺服器。它們共同為網路流量的 50%以上提供服務。

雖然Apache和NGINX有許多共同的品質,但在許多方面是不同的。每個都以自己的方式出類拔萃,並有自己的用途和方案。為了了解差異並得出結論,讓我們通過下面的詳細、端到端的比較。我們還提到每個點結束時每個比較點的優勝者。

Apache Vs Nginx 到底如何選擇最適合您的 Web 伺服器? - 天天要聞

基本架構

當談到Apache 和Nginx 時,根本區別在於他們的設計架構。這意味著它們的實際處理連接和流量以及響應不同的流量條件的方式不同。一種是過程驅動的方法,另一個是事件驅動的體系結構。

Apache

流程驅動方法

為每個請求創建一個新線程。

Apache 採用多線程方法。它提供各種多個處理模塊。這些預模塊基本上是三種類型的請求處理演算法。每個都用於不同的伺服器需求。MPM(多處理模塊)提供了一個靈活的架構,用於選擇不同的連接和不同的處理演算法。此外,不同版本的 Apache 2 採用不同的遊行模塊。

三個主要的 Apache MPM 是:

1.過程(預叉) MPM

2.工人 MPM

3.事件 MPM

默認情況下,Apache 2.2 配置為預叉模式(mpm_prefork)。它響應一組進程,每個進程一次可以處理單個請求。換句話說,Apache 每次都會創建一個新線程來處理每個連接請求。

線程是可由調度程序獨立管理的最小編程指令序列。在大多數情況下,線程是進程的組件。但是,Apache 的基本體系結構可能導致大量資源消耗,因此,可能會導致伺服器的問題(例如速度慢)。

Apache Vs Nginx 到底如何選擇最適合您的 Web 伺服器? - 天天要聞

Nginx

事件驅動方法

在一個線程內處理多個請求

Nginx 使用事件驅動的體系結構,並非同步處理請求。

它旨在使用非阻塞事件驅動連接處理演算法。因此,其進程可以在一個處理線程中處理數千個連接(請求)。這種連接過程模塊使 Nginx 能夠以有限的資源快速、寬工作。

Apache Vs Nginx 到底如何選擇最適合您的 Web 伺服器? - 天天要聞

此外,您還可以在低功耗系統上和在重負載下運行的系統上使用 Nginx。

優勝者:

NGiNX –它的結構輕量級,架構比 Apache 快得多。

性    能

以 Apache vs Nginx 來說,兩個 Web 伺服器對靜態和動態內容處理方式都不同。他們說 Nginx 在處理靜態內容時更好, 讓我們看看這是不是真的!

靜態內容

Apache

使用基於文件的方法提供靜態內容

靜態內容或文件通常是存儲在伺服器計算機上磁碟上的文件,例如 CSS 文件、JavaScripts 文件或圖像。Apache 使用其傳統的基於文件的方法處理靜態內容。

Nginx

在提供靜態內容時, Nginx 是大哥。

由於 Nginx 的設計架構更有能力處理負載,因此在提供靜態內容方面速度要快得多。根據高達 1,000 個同時連接的基準測試,其性能比 Apache 快 2.5 倍。Nginx 為靜態資源服務,而 PHP 無需了解這一點。另一方面,Apache 以昂貴的開銷處理所有這些請求。這使得 Nginx 更加有效,對系統資源的要求更低。

這個小圖像顯示的是靜態內容請求,以秒處理。Nginx 顯然在這裡超過了Apache!

動態內容

Apache

處理伺服器內的動態內容

Apache 可以在 Web 伺服器本身中處理動態內容,而無需依賴任何外部組件。所以,它可以處理你的本身。談論 Apache vs Nginx 性能:在考慮動態內容處理時,Nginx(如果不是更好的話)幾乎相等。

下面是對動態內容請求數的比較。看起來沒有什麼區別。

Nginx

不處理動態內容

它不處理動態內容,談到動態內容,Nginx 無法像 Apache 那樣在 Web 伺服器中處理動態內容。所有具有動態網頁內容的請求都傳遞到外部進程(例如 PHP-FPM)執行。Nginx 等待最終內容返回並交付給客戶端。請參考此圖片以了解一個清晰的想法:

Apache Vs Nginx 到底如何選擇最適合您的 Web 伺服器? - 天天要聞

當與 SCGI 處理程序和 FastCGI 模塊一起使用時,NGINX 可以為動態內容提供服務。

優勝者:

靜態:就靜態內容而言,Nginx 完勝 Apache。

動態:兩者都擅長處理動態內容。

操作系統支持

操作系統支持可能是需要考慮的重要一點,尤其是在比較 Apache 與 Nginx 時。但是,兩者在這裡幾乎相似。

Apache

支持所有與 Unix 一樣的系統,包括 Linux 和 BSD

它完全支持 MS-Windows

Apache 運行在各種與 Unix 一樣的系統(例如 Linux 或 BSD)上運行,並且完全支持微軟 Windows。

Nginx

支持幾乎所有與 Unix 一樣操作系統

部分支持 Windows。

它還在幾個現代 Unix 的系統上運行,並且對 Windows 有一些支持,但其 Windows 性能不像其他平台那樣強大。

優勝者:

Apache在這裡脫穎而出~

分散式/集中配置

Apache vs Nginx 是一個當之無愧的話題。他們的配置使他們彼此不同,使他們同樣有趣。讓我們看看誰的配置更容易、更快。

Apache

通過 .htaccess 文件允許基於每個目錄進行其他配置

此體系結構允許非特權用戶控制其網站的某些方面,而無需授予他們編輯主配置的許可權。這個很大!

Nginx

不允許進行其他配置

另一方面,它有一個缺點。它不提供其他配置。然而,它有利於你,因為這增加了性能。通過不允許目錄配置,它可以比 Apache 更快地提供請求。它不需要搜索 .htaccess 文件並解釋用戶製作的 req。

優勝者:

如果考慮了配置是  Apache

如果速度是 NGinx。

請求解釋

在 Apache vs Nginx 辯論中,解釋請求的方法是一個有趣的話題進行比較。它們都以完全不同的方式處理和解釋請求。他們不同的方法使他們獨特,也使一個比另一個更好一點。讓我們來探索一下!

Apache

通過文件系統位置

傳遞文件系統位置,提供解釋要求的能力。作為文件系統位置的物理資源,可能需要更抽象的評估。它將請求作為文件系統位置傳遞。當然,Apache 確實使用 URI 位置,但它們通常用於更抽象的資源。在創建或配置虛擬主機時,Apache 使用文檔根目錄下的目錄塊。

在使用 .htaccess 文件覆蓋特定目錄配置時,也可以看到對文件系統位置的這種偏好。

Apache Vs Nginx 到底如何選擇最適合您的 Web 伺服器? - 天天要聞

Nginx

通過 URI 來解釋請求

Nginx 被創建為 Web 伺服器和反向代理伺服器。由於這些架構的要求,Nginx主要使用你的眼睛。必要時轉換為系統。

它不提供指定配置的機制。對於文件系統目錄,則傳遞其 URI 本身。將請求(URI)而不是文件系統位置傳遞,使Nginx能夠輕鬆地在 Web 和代理伺服器中運行。它通過布局如何響應差異請求模式來簡單配置。

Apache Vs Nginx 到底如何選擇最適合您的 Web 伺服器? - 天天要聞

在準備好處理請求之前,它不會檢查文件系統。它解釋了為什麼它不實現任何形式的.htaccess文件。

這種將請求解釋為 URI 位置的設計使 Nginx 不僅能夠輕鬆地充當 Web 伺服器,還能夠用作代理伺服器、負載均衡器和 HTTP 緩存。此外,在 Apache vs Nginx 競賽中,NGINX 在傳輸速率(數據從伺服器發送到客戶端的速度)方面再次獲勝。在大多數情況下,Nginx 以 500/100 的公平金額獲勝。

Apache Vs Nginx 到底如何選擇最適合您的 Web 伺服器? - 天天要聞

優勝者:

似乎Nginx贏了, 因為它的解釋和反應更快。

功能模塊

兩者都是通過模塊系統可擴展的。但他們的工作方式是不同的。讓我們比較兩個 Web 伺服器的功能模塊:Apache vs Nginx!

Apache

60 個可動態載入的官方模塊,可打開/關閉

Apache 伺服器具有一組豐富的功能,可以通過安裝 60 個官方模塊之一來啟用這些功能。還有許多其他非官方的模塊,可以很容易地在互聯網上找到。

其模塊系統允許您動態載入或卸載模塊,以滿足您的需求。其模塊可以打開或關閉以添加或刪除功能,並連接到主伺服器。

簡而言之,Apache 有幾個功能模塊可滿足您的需求,但許多模塊並不經常使用。

Nginx

第三方核心模塊(不可動態載入)

另一方面,Nginx被挑選並編譯為第三方插件的過程。不可動態載入。這些模塊很有用,但是,它們允許您僅包括要使用的功能來決定從伺服器獲得什麼內容。

它被認為比 Apache 伺服器安全得多,因為任意組件可以在伺服器中連接。

此外,NGINX 還提供 Web 伺服器的所有核心功能,而不會犧牲成功所需的輕量級和高性能特性。Apache 就像微軟 Word,Nginx 就像記事本。Apache 有一百萬個選項,但你只需要幾個。Nginx 做這些 "幾個" 的事情, 做他們比Apach快 50 倍。

優勝者:

NGiNX – 重要性不高的功能和模塊使它比 Apache 更輕、更智能、更好的Web伺服器。

靈活性

靈活性是 Web 伺服器最重要的問題之一。Apache vs Nginx 靈活性有一些有趣的差異。

Apache

支持通過動態模塊自定義 Web 伺服器。

可以通過騎乘模塊對 Web 伺服器進行自定義。Apache 的動態模塊載入時間最長,因此所有 Apache 模塊都支持此功能。

Nginx

不夠靈活,無法支持動態模塊和載入

然而,NGINX的情況並非如此。2016 年初,NGINX 獲得動態模塊載入支持;以前,NGINX 要求管理員將模塊編譯為 NGINX 二進位文件。大多數模塊尚不支持動態載入,但隨著時間的推移,它們可能會支持動態載入。

優勝者:

Apache – 它顯然在這一點上領先。

安    全

Apache vs Nginx 安全性再次成為爭論的話題。嗯,這兩個 Web 伺服器都為基於 C 的代碼庫提供了出色的擴展安全性。

Apache

非常安全

Apache 確保所有在其伺服器上運行的網站都是安全的,不會受到任何傷害和黑客攻擊。因此,它提供了用於 DDoS 攻擊處理的配置提示,以及用於響應 HTTP DoS、DDoS 或暴力攻擊的 mod_evasive 模塊。

NGINX

最少的代碼實現更好的安全

然而,NGINX的代碼庫明顯小了幾個數量級,所以從前瞻性的安全形度來看,這絕對是一個很大的優勢。NGINX還列出了最近的安全建議。在Nginx博客上閱讀一篇關於抵禦DDoS攻擊的文章。

優勝者:

Nginx–被認為更安全

支    持

支持是每個客戶都渴望得到的。它可以改變或破壞你的用戶體驗。在比較Apache和Nginx支持時,似乎沒有太大區別。

Apache

社區支持通過郵件列表、IRC和堆棧溢出完成

商業Apache支持可以從許多第三方公司獲得,比如OpenLogic,但是Apache基金會沒有維護官方列表。Apache伺服器旨在為其所有用戶提供強大的支持。

Nginx

通過郵件列表、IRC、堆棧溢出和論壇提供社區支持

NGINX 背後的公司提供名為 NGINX Plus 的商業產品,該產品支持一組有關負載平衡、媒體流和監控的額外功能。

優勝者:

這是一個平局,兩者的支持幾乎相同。兩個 Web 伺服器都很棒。

最    終

Apache和Nginx都無法被對方取代, 他們有他們的強弱。在了解好處、限制和差異之後,您可能已經擁有了最適合您的 Web 伺服器的想法。

在關於Apache對 Nginx 的帖子中, 9分中的5分被 Nginx 贏得, 2 分被Apache和nginx "平局" 。因此,我們可以清楚地看到,NGINX領先Apache。

何時選擇

仍然困惑於哪台伺服器更適合您的解決方案?讓了解一下 - 何時選擇!

何時選擇Apache而不是 Nginx?

1.Apache.htaccess

NGINX 不支持類似 Apache 的.htaccess 文件。但是,使用 Apache,您可以獲得優勢,讓非特權用戶控制其網站的某些重要方面。

顯然,用戶不允許編輯主配置。

使用 .htaccess 文件,可以基於每個目錄覆蓋系統範圍的設置。

為了獲得最佳性能,請將這些 .htaccess 指令包括在主配置文件中。

在共享託管環境中,Apache 由於其 .htaccess 配置而效果更好。

P.S.對於專用主機或VPS Nginx保持最好的選擇。

2. 在功能限制的情況下,使用 Apache

Nginx 有一些非常重要的核心模塊。然而, Nginx 有一些功能限制。

如果存在某些限制或需要使用 Nginx 不支持的額外模塊,則可能需要選擇 Apache 代替。

何時選擇Nginx而不是Apache

1.快速靜態內容處理

Nginx 在處理來自特定目錄的靜態文件方面可以執行更好的工作。

此外,上游伺服器進程不會被阻止,因為大量靜態內容請求,因為 Nginx 可以同時處理它們。這顯著提高了後端伺服器的整體性能。

Nginx 不斷努力為用戶提供更好的體驗。2018年,它顯示出了顯著的增長。在 Nginx博客上瀏覽一下 2018年的主要要點。

2.非常適合高流量網站

如果我們談論的速度和多少客戶可以服務在高負載,Nginx將永遠閃耀作為贏家超過Apache。

這使得 Nginx 具有顯著輕量級,非常適合伺服器資源。這就是為什麼大多數 Web 開發人員更喜歡 Nginx 而不是 Apache。

特別是,如今的電子商店僱傭了一位Magento開發者,他們知道如何在高流量的網站上工作,並擅長在Nginx上工作。

簡言之,當涉及到服務一個有大量的流量的網站,Nginx是無可匹敵的。

或者兩者同時使用

是的,Apache和Nginx也可以成為朋友!通過將每個伺服器的優勢一起使用,可以使用它們。

您可以將 Apache 前面的 Nginx 用作伺服器代理(如下圖所示)。這利用了 Nginx 的快速處理速度和同時建立大量連接的能力。

Apache Vs Nginx 到底如何選擇最適合您的 Web 伺服器? - 天天要聞

對於靜態連接,Nginx 會將文件快速服務到客戶端。對於動態內容,例如 Php 文件,Nginx 反向代理伺服器會將他們的請求代理到 Apache,然後 Apache 可以處理其結果並返回其呈現的頁面。

然後,Nginx 可以將最終內容傳遞給客戶端。此外,它允許您有一個非常實用的網路伺服器,以服務您的客戶(大量用戶)非常快。

最    後

決定您將使用哪個 Web 伺服器,Nginx 或 Apache 是設置網站的重要步驟。

這兩種解決方案都能夠處理不同的工作負載,並與其他軟體合作,以提供完整的 Web 堆棧。

原文:http://8nn.co/cqYJ

作者:Kavya

譯者:倪家興

科技分類資訊推薦

抖音、淘寶、快手、微信,集體出手! - 天天要聞

抖音、淘寶、快手、微信,集體出手!

日前抖音、淘寶、快手、微信等多個平台發布公告打擊違規微短劇抖音5月9日,「抖音短劇」公眾號發布《抖音關於打擊違規微短劇的公告》稱,抖音持續推進微短劇內容治理,鼓勵和推廣優質微短劇,持續對含有不良價值觀導向、違反公序良俗、低俗「擦邊」等違規內
海信電視開啟618搶先購 多款百吋電視促銷 - 天天要聞

海信電視開啟618搶先購 多款百吋電視促銷

【CNMO科技消息】近日,CNMO注意到,海信電視宣布將在5月13日開啟618提前購活動,多款百寸電視將參與促銷,覆蓋了多個電商平台,包括京東自營、天貓、抖音、快手等,感興趣的消費者可前往各大平台親自了解。 據悉,此次促銷活動涵蓋了多個系列的智能電視產品,包括E8Q Pro、E7N Pro、E5Q Pro等。此次活動將在5月13日0點正式...
聯想集團早盤大漲5%,中美經貿共識釋放積極信號 - 天天要聞

聯想集團早盤大漲5%,中美經貿共識釋放積極信號

5月12日,港股市場對中美經貿高層會談成果反應熱烈。其中,聯想集團(00992)早盤一度漲5%,4月9日至今反彈近30%。聯想集團作為具備全球布局的科技企業,因其業務特性在出口與進口兩端均迎來顯著利好,有望成為本輪政策轉向的重要受益者。據新華社消息,當地時間5月11日晚,中美經貿中方牽頭人、國務院副總理何立峰在新聞發...
瀋陽這些地方能收到5G-A信號!預計年底三環內普遍覆蓋! - 天天要聞

瀋陽這些地方能收到5G-A信號!預計年底三環內普遍覆蓋!

‍‍‍‍‍最近有一些瀋陽市民發現自己手機上的信號欄,5G標識後面多了個字母「A」。5G-A是什麼意思?和5G相比,5G-A有什麼不同?5G-A又會給我們的生活帶來怎樣的變化?5月9日,記者對中國移動通信集團遼寧有限公司瀋陽分公司(簡稱瀋陽移
解鎖多項救生技能!昌平居民體驗防災應急項目 - 天天要聞

解鎖多項救生技能!昌平居民體驗防災應急項目

5月10日在第17個全國防災減災日到來之際區國動辦開展防災減災主題宣傳活動帶來7項危急情況求生「乾貨」有效提升廣大群眾安全意識和防災能力切實築牢城市安全防線約100名社區居民參與在龍澤園街道智慧社社區,現場設置了多個體驗區,居民們在工作人員的引導下,分組體驗地震模擬、煙霧逃生等演習項目。在地震體驗車內,大家...
新生活  數字生活智惠金城百姓 - 天天要聞

新生活 數字生活智惠金城百姓

在科技日新月異的今天,數字經濟宛如一股澎湃的浪潮奔涌而來,成為驅動城市發展的重要力量。從車輪上的便捷出行到指尖上的多元消費,從移動支付的便捷高效到屏幕前的智慧政務服務……數字經濟悄然編織起覆蓋生活全場景的智能網路,將便捷與高效融入日常。
國內手機激活量份額最新周排名:vivo系力壓小米奪冠 - 天天要聞

國內手機激活量份額最新周排名:vivo系力壓小米奪冠

【CNMO科技消息】近日,有數碼博主曝光了國內手機激活量份額最新周(第18周)排名。從榜單來看,vivo系力壓小米(含REDMI紅米)奪冠。具體排名如下(同比:與2024年同周份額比較): 1、vivo+iQOO:份額18.20%,同比-0.6個百分點 2、華為:份額17.40%,同比+0.7個百分點 2、小米:份額17.40%,同比+2.3個百分點 4、O
昨夜今晨:蘋果摺疊屏iPhone部件開始送樣測試 劉強東身著京東外賣推廣T恤現身東京街頭 - 天天要聞

昨夜今晨:蘋果摺疊屏iPhone部件開始送樣測試 劉強東身著京東外賣推廣T恤現身東京街頭

2025年5月12日 星期一 驅動中國昨夜今晨京東外賣嚴控商家入駐標準 用戶反饋機制同步升級​京東外賣平台近期披露的審核數據顯示,商家入駐通過率約為40%。平台對無堂食餐廳的准入標準作出明確界定,該類商戶特指不設線下經營區域的外賣專營店,不包括咖啡茶飲、熟食滷味等特定品類。針對極少數未達標的商家,平台已開通用戶...