<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Apache 與 Nginx:你應(yīng)該選擇哪個 Web 服務(wù)器

          共 4726字,需瀏覽 10分鐘

           ·

          2022-02-20 16:14


          Apache vs Nginx 是當(dāng)之無愧的話題。如果你對哪款服務(wù)器更適合你感到困惑,那么久讓我們在本文中找出答案吧。


          Apache 和 Nginx 是當(dāng)今為互聯(lián)網(wǎng)提供動力的最流行的Web 服務(wù)器。他們共同負(fù)責(zé)為互聯(lián)網(wǎng)上超過 50% 的流量提供服務(wù)。但近年來,Apache 出現(xiàn)了下滑,取而代之的是 Nginx。從高層次上講,這兩個平臺做的核心事情是相同的:托管和服務(wù)web內(nèi)容。因此,在一個特定的場景中,兩者都具有獨特之處。



          1

          Apache:功能豐富的 Web 服務(wù)器


          Apache 是一個模塊化、流程驅(qū)動的 Web 服務(wù)器應(yīng)用程序,它為每個同時連接創(chuàng)建一個新線程。它支持許多功能。其中許多被編譯為單獨的模塊并擴展其核心功能。Apache 的模塊可以提供從服務(wù)器端編程語言支持到身份驗證機制的所有內(nèi)容。


          Apache Web 服務(wù)器是一個模塊化應(yīng)用程序,管理員可以在其中選擇所需的功能并根據(jù)所需的特定功能安裝不同的模塊。所有模塊都可以編譯為 與主 Apache 文件分開存在的動態(tài)共享對象(DSO)。強烈建議使用 DSO 方法,因為它使從服務(wù)器配置中添加/刪除/更新模塊的任務(wù)非常簡單。



          Apache 架構(gòu)的另一個基本特征是過濾器,它允許模塊與其他模塊創(chuàng)建的內(nèi)容進行交互。這種交互包括加密、病毒掃描以及靜態(tài)和動態(tài)內(nèi)容的壓縮。

          管理員經(jīng)常選擇 Apache 是因為它的靈活性、功能和廣泛的支持。

          相關(guān):


          • 在Ubuntu中使用mod_status模塊監(jiān)視Apache性能? https://www.linuxmi.com/ubuntu-mod_status-apache.html

          • 快速在Ubuntu 20.04上架設(shè)LAMP服務(wù)器及WordPress博客? https://www.linuxmi.com/ubuntu-20-04-lamp-wordpress.html



          2

          Nginx:專為性能和可擴展性而設(shè)計


          Nginx 是俄羅斯軟件開發(fā)者 Igor Sysoev 創(chuàng)建的,旨在解決一個名為 C10K 的問題——服務(wù)器如何支持10000個并發(fā)連接,也就是concurrent 10000 connection(這也是c10k這個名字的由來)。它是專門為解決 Apache Web 服務(wù)器的性能限制而編寫的。該服務(wù)器于 2002 年首次創(chuàng)建為 rambler.ru 網(wǎng)站的擴展工具。



          相關(guān):

          • NGINX 之父 Igor Sysoev 已選擇退出 F5 公司? https://www.linuxmi.com/nginx-igor-sysoev-f5.html

          • 如何在 Linux 上安裝 Nginx Web 服務(wù)器? https://www.linuxmi.com/linux-nginx-web-server.html


          NGINX 是一個高性能的異步 Web 服務(wù)器。它使用事件驅(qū)動的架構(gòu)來處理大量的連接。由于我們將在本文中看到的各種原因,它現(xiàn)在比 Apache Web Server 更受歡迎。


          Nginx 主要用于提供靜態(tài)文件,但今天,它已經(jīng)發(fā)展成為一個完整的 Web 服務(wù)器,可以處理所有服務(wù)器任務(wù)。如今,Nginx 也被用作反向代理、負(fù)載均衡器和 HTTP 緩存。在某些用例中,Nginx 還用作 Web 加速器或 SSL/TLS 終結(jié)器。


          管理員經(jīng)常選擇 Nginx 是因為它的資源效率和負(fù)載下的響應(yīng)能力。



          3

          Apache 與 Nginx:詳細(xì)對比


          架構(gòu)


          在 Apache 與 Nginx 的情況下,它們運行的兩個 Web 服務(wù)器的架構(gòu)之間存在核心差異。


          最重要的是,Apache 和 Nginx 之間的主要區(qū)別在于它們?nèi)绾翁幚砜蛻舳苏埱蟆?/span>Apache 使用流程驅(qū)動的方法并為每個請求創(chuàng)建一個新線程。而 NGINX 使用事件驅(qū)動架構(gòu)在一個線程中處理多個請求。


          在 Apache 中,單個線程只與一個連接相關(guān)聯(lián),而 Nginx 中的單個線程可以處理多個連接。所有進程都與其他連接一起放入事件循環(huán)中,并進行異步管理。此過程消耗更少的內(nèi)存,從而提高性能。



          最重要的是,由于 Nginx 的內(nèi)存消耗較低,它往往能夠同時處理更多的連接而不會使主機服務(wù)器過載。如果 Apache 面臨大量請求,它最終可能會消耗所有系統(tǒng)內(nèi)存并要求將數(shù)據(jù)存儲在交換中,這會顯著降低性能。



          性能:靜態(tài)/動態(tài)內(nèi)容


          Web 服務(wù)器的性能主要由兩個參數(shù)來判斷,即處理靜態(tài)內(nèi)容和動態(tài)內(nèi)容的能力。


          靜態(tài)文件不需要處理,因此這對于測量服務(wù)器的響應(yīng)時間很有用。那么,每臺服務(wù)器能以多快的速度交付小型靜態(tài)文件呢?當(dāng)涉及到靜態(tài)內(nèi)容時,這里是 Nginx 的亮點,因為文件可以直接、快速地提供給客戶端。根據(jù)通過運行多達(dá) 1000 個同時連接執(zhí)行的基準(zhǔn)測試,Nginx 的執(zhí)行速度比 Apache 快 2.5 倍。同時,RAM消耗更低。為了處理負(fù)載,Nginx 使用的系統(tǒng)內(nèi)存減少了 5-6%。區(qū)別主要來自服務(wù)器架構(gòu)。


          對于顯示動態(tài)內(nèi)容,測試結(jié)果顯示 Apache 與 Nginx 的性能完全相同。


          Nginx 沒有任何原生處理動態(tài)內(nèi)容的能力。它不是為動態(tài)內(nèi)容的本地處理而設(shè)計的。Nginx 必須傳遞給外部處理器來處理 PHP和其他動態(tài)內(nèi)容請求。這可能會使事情稍微復(fù)雜化,尤其是在嘗試預(yù)測允許的連接數(shù)量時。


          與 Ngnix 不同,Apache 可以通過將 PHP 等語言的處理器嵌入到其每個工作實例中來處理動態(tài)內(nèi)容。這允許它在 Web 服務(wù)器本身內(nèi)執(zhí)行動態(tài)內(nèi)容,而無需依賴外部組件。


          定制


          Apache 具有動態(tài)加載的模塊,可以在需要時使用。該服務(wù)器支持許多不同的模塊,包括官方和第 3 方。這使得 Apache 成為一個非常可定制的平臺,用戶可以根據(jù)自己的需要進行定制。這些模塊可用于重寫 URL、驗證客戶端、日志記錄、緩存、強化服務(wù)器、壓縮、加密等。動態(tài)模塊可以大大擴展核心功能,而無需太多額外的工作。



          Nginx 模塊需要集成到內(nèi)核中,不能動態(tài)加載。要包含非標(biāo)準(zhǔn)模塊,用戶必須從源代碼編譯他們的服務(wù)器。


          Nginx Web 服務(wù)器缺乏這種能力,使得 Apache 在這方面更加靈活。


          配置


          除了主配置文件之外, Apache 還允許通過.htaccess文件在每個目錄的基礎(chǔ)上進行附加配置。對 .htaccess 文件所做的更改會立即應(yīng)用于系統(tǒng)。這些文件包括從重定向規(guī)則到內(nèi)存限制等等的所有內(nèi)容,并有效地允許 Web 服務(wù)器的分散配置。此外,此架構(gòu)允許非特權(quán)用戶控制其網(wǎng)站的某些方面,而無需授予他們編輯主配置的權(quán)限。


          然而,這種靈活性是以犧牲性能為代價的。每次.htaccess啟用文件時,Apache 必須遍歷整個目錄樹,從請求的 URL 或文件通過所有更高級別直到服務(wù)器的根目錄,然后為每個請求加載它們。


          Nginx 不允許額外的配置。它的配置是集中的。你有一個管理整個過程的文件,這使它在這方面快得多,盡管靈活性要低得多。Nginx 的中央配置不如 Apache 使用的概念靈活,但它提供了明顯的安全優(yōu)勢:只有獲得 root 權(quán)限的用戶才能更改 Web 服務(wù)器的配置。


          由于 Nginx 中沒有目錄級別的配置,因此用戶通過將指令寫入主配置文件來執(zhí)行所有配置更改。


          支持


          Apache 和 Nginx 都是文檔齊全的平臺。管理員不太可能遇到問題或遇到無法在其文檔中找到答案的問題。


          • Apache HTTP 服務(wù)器文檔

          • Nginx 文檔


          在操作系統(tǒng)支持方面,Apache 可以在 Linux 和 UNIX 等所有操作系統(tǒng)上運行,并且完全支持微軟 Windows。Nginx 也可以在幾個現(xiàn)代的類 Unix 系統(tǒng)上運行,并且支持 Windows,但它在 Windows 上的性能不如在 UNIX 平臺上穩(wěn)定。因此,如果你想在微軟 Windows 上運行功能豐富的開源 Web 服務(wù)器,Apache 確實是唯一的生產(chǎn)就緒選項。



          4

          Apache 和 Nginx 一起配合使用


          但是,在比較 Apache 和 Nginx 時要記住的一件事是,它并不總是必須是非此即彼的決定。許多管理員將兩者結(jié)合在一個混合解決方案中,充分利用各自的優(yōu)勢。


          Apache 和 Nginx 可以并排使用來創(chuàng)建工作負(fù)載優(yōu)化的服務(wù)器。你可以在 Apache 前面使用 Nginx 作為服務(wù)器代理,它利用 Nginx 的處理速度和處理大流量的能力。Nginx 處理和提供靜態(tài)內(nèi)容,同時將動態(tài)內(nèi)容轉(zhuǎn)發(fā)給 Apache(如下圖所示)。



          Nginx 執(zhí)行與 HTTP 相關(guān)的繁重工作——提供靜態(tài)文件、緩存內(nèi)容和卸載慢速 HTTP 連接,以便 Apache 服務(wù)器可以在安全可靠的環(huán)境中運行應(yīng)用程序代碼。


          結(jié)論


          在 Apache 與 Nginx 的比賽中,在切換服務(wù)器或服務(wù)器軟件時做出決定可能很困難。確定最適合你的服務(wù)器很大程度上取決于評估你的特定要求并確定最佳選擇。Apache 和 Nginx 都是開源的高性能 Web 服務(wù)器,能夠處理各種工作負(fù)載以滿足現(xiàn)代 Web 需求的需求。


          如果你不需要很多 Web 服務(wù)器功能,Nginx 是你的最佳選擇。此外,在速度和性能方面,Nginx 也是明顯的贏家。它非常適合高流量網(wǎng)站。


          Nginx 在許多方面都無法與功能豐富的 Apache 競爭,但它的異步狀態(tài)和單線程閃電般的快速架構(gòu)使其成為超越 Apache 的明智選擇。


          另一方面,Apache 可能是其他場景中首選的 Web 服務(wù)器。Apache 更適合共享托管環(huán)境,并且可以提供一個控制面板,從而更容易進行服務(wù)器端更改。


          因此,在 Apache 和 Nginx 之間進行選擇之前,你需要仔細(xì)分析你的需求,你必須希望你的 Web 服務(wù)器服務(wù)于它們。


          來源:linuxmi.com/apache-vs-nginx-web-server.html



          往期推薦



          MyBatis 二級緩存 關(guān)聯(lián)刷新實現(xiàn)

          京東二面:商品庫存的扣除過程,如何防止超賣?

          一個寶藏開源軟件,跨平臺終端神器 Tabby!

          char和varchar有哪些區(qū)別?varchar最大長度是多少?

          干掉項目中雜亂的 if-else,試試狀態(tài)模式,這才是優(yōu)雅的實現(xiàn)方式!

          SpringBoot+flowable快速實現(xiàn)工作流,優(yōu)秀的工作流輪子



          瀏覽 43
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  A片免费播放视频 | 在线观看肏屄视频 | 欧美艹逼| 狠狠撸夜夜撸 | 奇米网久久 |