伺服器端對決:Apache vs NGINX

Web伺服器是Internet的核心。 沒有網路伺服器軟體如 阿帕奇 和NGINX,網路將不像我們今天看到的那樣。 但是,它們不可互換。 要了解這兩種選擇中的哪一種(Apache vs NGINX)最適合您,您需要了解它們的工作方式。

在本文中,我們將討論什麼是Web伺服器以及它們如何工作,並介紹Apache和NGINX。 然後,我們將在關鍵差異方面比較Apache與NGINX,並討論它們的優缺點。

讓我們開始吧!

什麼是Web伺服器?

簡而言之,Web伺服器是專門用於運行伺服器軟體(例如Apache或NGINX)的計算機。 Web伺服器既存儲站點文件,也可以處理傳入的請求以訪問它們。

最後一個任務是Web伺服器軟體,這是一項重要的職責。 對於流行的網站,您使用的軟體可能需要在較短的時間內處理大量的請求,因此必須由任務來決定。 NGINX和Apache都能夠擴展和處理大量請求。 但是,兩個伺服器選項的工作方式在核心級別上是不同的。

Web伺服器軟體與其他幾個組件協同工作,可為現代網站和應用程序提供服務。 例如,要在伺服器上設置WordPress,您需要以下組件:

  • 具有HTTPS支持的Web伺服器:可以是Apache,NGINX或其他一些選項。
  • PHP:WordPress建立在 PHP語言,因此您需要它來運行內容管理系統(CMS)。
  • 資料庫軟體:可以是MySQL或MariaDB。

對於本文,我們將僅專註於Web伺服器軟體。 但是,了解軟體不能在真空中運行非常重要。 在某些情況下,您甚至可以將Web伺服器(例如Apache和NGINX)配置為可以協同工作。 網站可以做到這一點的一種方法是配置NGINX以使其正常工作 作為反向代理 同時使用Apache作為主要伺服器軟體。 您可以隨意使用的應用程序多種多樣。

Apache簡介

伺服器端對決-apache-vs-nginx-1伺服器端對決:Apache vs NGINX

需很長時間, 阿帕奇 是大多數網站的默認Web伺服器選項。 自1995年Robert McCool推出Apache HTTP Server以來,該軟體就已經存在。 幾年後,Apache Software Foundation接管了維護工作,Apache成為開源軟體。

Apache受到了廣泛的歡迎,因為它與幾個主要的Linux發行版一起安裝。 當談到Web伺服器時,Linux的盛行使Apache成為事實上的多年選擇。

Apache名稱在Linux中根深蒂固,以至於操作系統(OS)將httpd命令用於其伺服器進程(在Apache本身中找到的東西)。 但是,就網路伺服器而言,Apache並不是唯一的大牌。

NGINX簡介

伺服器端對決-apache-vs-nginx-2伺服器端對決:Apache vs NGINX

NGINX 由Igor Sysoev設計,能夠處理所謂的 「 C10K問題」。 這涉及優化網路以能夠處理多達1萬個並發連接。 換句話說,NGINX的創建考慮了最大的可擴展性。

該開源軟體於2004年發布,現在有兩種許可證類型可用。 您擁有開源版本,並且 NGINX Plus,這是一個包含專業支持和其他功能的企業解決方案。

剛起步時,由於與Apache相比安裝困難,因此大多數網站都使用NGINX僅處理靜態請求。 多年來,NGINX的市場份額一直穩定增長。

根據一些調查, NGINX已通過Apache 作為世界上最受歡迎的Web伺服器軟體。 其他數字使Apache緊隨其後:

伺服器端對決-apache-vs-nginx-3伺服器端對決:Apache vs NGINX

圖片來源: W3Techs

確實,NGINX在網路上最受歡迎的網站中比Apache受歡迎得多。 這是因為NGINX在可伸縮性方面具有不可否認的優勢,這對於獲得大量流量的站點而言至關重要。

另外,NGINX可以拉「雙重責任」 作為反向代理 要麼 負載均衡器,如果您不想將其用作網路伺服器。 換句話說,它可以完成比Apache更多的角色。

但是,這並不是說如果要考慮更改伺服器,NGINX應該是您的默認選擇。 在接下來的幾節中,我們將分解使每種軟體獨特的原因。

Apache vs NGINX:3個主要區別

在討論哪種伺服器解決方案是最適合您的解決方案之前,我們需要分解一下使它們與眾不同的原因。 讓我們從談論Apache與NGINX的請求處理開始。

1.請求管理

警告-這是事情變得更加技術化的地方。 Apache使用它所說的 多處理模塊(MPM) 處理連接。 該軟體使您可以在三種類型的MPM之間進行選擇:

  1. mpm-prefork:此模塊創建單線程進程來處理每個請求。 反過來,每個「孩子」只能處理一個連接。
  2. mpm_worker:此模塊可以啟動多線程進程,每個線程能夠管理一個連接。
  3. mpm_event:在大多數情況下,此模塊的工作方式與mpm_worker相同,但已進行了優化以使連接保持活動狀態。

Apache的一個獨特方面是,它使您能夠選擇要使用的模塊,並根據需要交換它們。 默認情況下,Apache使用mpm-prefork模塊,該模塊非常適合少量的並發連接。 在擴展方面,mpm_worker模塊更好,但它需要其他伺服器資源。

相反,NGINX使用所謂的「事件驅動」方法。 該軟體使用多線程進程,每個線程都能夠處理多個連接。

而且,NGINX非同步處理傳入的請求。 簡而言之,這意味著NGINX可以使用更少的伺服器資源來管理更多的請求,從而使其在此特定方面更加高效。

2.伺服器配置

Apache使用.htaccess文件設置有關如何處理傳入請求的特定規則。 這些文件包括從重定向規則到內存限制等所有內容。

使用Apache,您可以為伺服器樹中的每個目錄設置單獨的.htaccess文件。 舉個例子,如果您設置共享伺服器,則可以使託管在其上的每個網站都可以設置自己的.htaccess文件。

這種高度靈活性的缺點是,沿著請求路徑運行的每個.htaccess文件都需要分別進行解釋。 這意味著請求可能需要更長的時間才能執行。

在配置方面,NGINX無法為您提供相同級別的靈活性。 您可以使用一個主文件來管理整個事情,而不是直接級別的配置文件。

3.模塊

模塊是附件,您可以將其與所選伺服器軟體一起使用以擴展其默認功能。 考慮到Apache的時代和受歡迎程度,在模塊選擇方面它比NGINX更具優勢也就不足為奇了。

Apache不僅提供了更多的模塊,而且往往更容易找到有關如何使用它們的文檔和教程。 此外,Apache使您可以隨意安裝,啟用和禁用模塊,從而為您提供高度的靈活性。

NGINX沒有提供相同的優勢。 要使用模塊,您需要將它們編譯到NGINX內核中。 而且,模塊一旦編譯就不能禁用,這使得交換選項變得更加困難。

請務必注意,NGINX Plus確實包含動態模塊功能,使您可以隨意禁用和啟用模塊。 但是,即使使用Plus,在使用它們之前,仍需要使用NGINX內核編譯這些模塊。

儘管NGINX的模塊庫和文檔正在以穩定的速度增長,但是就數量而言,它們仍然無法與Apache相提並論。 考慮到NGINX如何繼續獲得更多的市場份額,這可能會在不久的將來改變。

Apache vs NGINX的優缺點

到目前為止,您已經了解了Apache和NGINX之間的核心區別。 現在,讓我們簡要介紹每種軟體的優缺點。

阿帕奇

首先,讓我們談談使用Apache的主要好處:

  • 設置和配置更加容易
  • 藉助.htaccess文件,您可以更精細地控制伺服器的配置
  • 模塊選擇更好,您可以隨意啟用和禁用模塊
  • 您可以決定如何使用不同的模塊處理請求

使用Apache vs NGINX的主要缺點是後者的擴展性更好。 如果您仍處於網站的成長階段,那麼Apache應該足以應付流量。

但是,如果您的站點取得了巨大成功,則有時可能需要考慮更新伺服器堆棧。 這可能意味著切換到NGINX或將其用作Apache Web伺服器的反向代理。

NGINX

就Apache而言,NGINX具有兩個明顯的優勢-性能和可伸縮性。 更具體地說,NGINX在以下方面更好:

  • 處理大量並發請求
  • 用更少的硬體資源獲得更好的性能
  • 更快地提供靜態內容

最後一部分是為什麼這麼多人選擇使用NGINX作為反向代理解決方案的原因。 儘管NGINX具有與性能相關的所有優點,但它並非沒有缺陷。

儘管只有一個配置文件可以減少請求時間,但這也意味著NGINX的靈活性不如Apache。 這也適用於模塊,因為NGINX的開源版本會迫使您編譯模塊以使用它們-並且您不能禁用它們。 實際上,這意味著要設置NGINX以使其按需工作可能比使用Apache複雜得多。

使用NGINX的主要原因是性能是否是您最關心的問題。 在某些時候,流行的網站需要掏出大筆錢來處理大量流量,而不會造成停機時間,載入時間長等問題。 而且,由於NGINX可以使您以較少的硬體資源獲得更好的性能結果,因此它可以是一種更具成本效益的選擇。

結論

切換伺服器或伺服器軟體始終是一個重大決定。 因此,理想情況下,您將希望長期使用將要堅持使用的伺服器解決方案。

在之間選擇 阿帕奇NGINX 看起來不那麼清晰。 在許多情況下,此決定將取決於您,因為 您的虛擬主機 將決定使用什麼軟體。 在實際的水平上,您需要進行研究,並找出Web主機使用的選項,然後再提交給他們。

您對如何在Apache和NGINX之間進行選擇有任何疑問嗎? 讓我們在下面的評論部分中討論它們!

ProStockStudio / shutterstock.com的文章縮略圖

資源

相關文章