Web伺服器王者之爭:該選擇Apache還是Nginx

該選擇Apache還是Nginx

Apache還是Nginx?關於這個議題爭論一直都沒有停止過。與其在一昧地進行口水戰,不如通過一些關鍵點進行兩者的比較,幫助站長捋清思路,選擇更適合的Web伺服器。

本文將從多個方面,對Nginx和Apache兩者進行比較,論述兩者的優劣點,希望能夠起到拋磚引玉之效。

眾所周知,網際網路於90年代開始了全球性的“征服”。整個Web協議可以概括為訪問者從給定的Web站點請求文件,而DNS和IP系統將該請求轉發到正確的計算機。託管請求的網頁的這臺伺服器計算機將把網頁“提供”給訪問者。

網頁本質上是HTML文件。為了能夠向訪問者提供不同的網頁,網站計算器需要一個伺服器程式。Nginx與Apache之類的軟體可以處理請求,對其進行分析,然後將相應的文件傳輸至訪問者的瀏覽器進行檢視。

Nginx和Apache是當下最為​​流行的Web伺服器,用於將網頁傳遞到使用者的瀏覽器:

  • Apache於1995年首次釋出,Nginx則於2004年釋出。
  • 兩者都被全球500強的大型公司使用。
  • Nginx的市場份額多年來一直在穩定增長。
  • 在某些情況下,Nginx在效能方面更具競爭優勢。

什麼是網路伺服器?

網路伺服器是在物理伺服器上執行的軟體應用程式,用於處理傳入的使用者請求。

當你輸入類似 google.com 這樣的 URL 時,瀏覽器會向網路伺服器傳送請求,網路伺服器會儲存網站執行所需的檔案。

什麼是網路伺服器?

然後,伺服器傳送回相應的內容,無論是 HTML、CSS、JavaScript、影象還是其他型別的內容。

網路伺服器在幕後處理許多重要任務:

  • 管理 HTTP 連線和請求
  • 根據需要將請求路由到正確的後端應用程式(如 PHP、Python 或 Ruby on Rails)
  • 從磁碟讀寫檔案以提供靜態資產
  • 執行安全策略
  • 壓縮內容以加快傳輸速度
  • 記錄請求以便分析

既然我們已經介紹了網路伺服器的工作原理,那麼讓我們來看看 NGINX 和 Apache 是如何完成這些任務的。

Apache

在網際網路的頭幾年,蒂姆·伯納斯·李(Tim Berners-Lee)的CERN httpdNCSA HTTPd之後,Apache於1995年首次釋出後迅速佔領了市場,併成為世界上最受歡迎的Web伺服器。如今,它仍然處於該市場地位,但是主要是出於遺留原因。Apache基金會根據Apache許可由Apache Foundation開發和維護Apache

關於Apache的命名,有兩個不同的故事版本。一個版本說該名稱起源於著名的美國原住民傳統,而另一個版本則說該名稱是“a patchy server”的一個雙關語,即另外一種意思是一系列軟體補丁。

Linux

Apache巨大的市場份額部分是由於它已預安裝在所有主要的Linux發行版中,例如Red Hat,Centos和Ubuntu。

Ubuntu預設頁面

Ubuntu預設頁面

Apache在Linux世界中的重要作用的一個例子是它的伺服器程序名稱是HTTPd,這使Apache成為Web伺服器軟體的同義詞。

除了成為Web伺服器市場上的第一個重要參與者之外,Apache的迅速發展還得益於其配置系統和.httaccess檔案。

.htaccess

Apache使用.htaccess進行配置。關於如何配置,編輯和使用此檔案的教學很多,因為它為配置Apache處理傳入請求的方式提供了很大的靈活性。一些示例包括:不同的重定向規則,最大上傳檔案大小,URL重寫,記憶體限制,目錄保護(htpasswd),到期標頭,快取控制標頭,編碼標頭,cookie,查詢字串操作。

Apache的主要“優點”之一是,在伺服器根目錄(主網站目錄)中,目錄樹中的每個級別或目錄都可以有自己的.httaccess檔案,並及對應的配置。

對於共享主機來說無疑是最大的優勢,因為他們可以在同一臺計算機上為數百個使用者提供不同的伺服器規則配置,而不會影響其他網站。客戶可以在受限的共享託管環境中配置許多詳細資訊,而獨立於全域性伺服器配置。所以,我們大多時候可以看到虛擬主機伺服器均可以配置.httaccess檔案,如果伺服器提供商提供許可權。

如官方文件所述:

“通常,僅當您無權訪問主伺服器配置檔案時,才應使用.htaccess檔案。”

但是,這種靈活性是以犧牲效能為代價的:“ 無論您實際上是否使用它們,允許.htaccess檔案都會導致效能下降!”

每次啟用.htaccess檔案時,Apache都必須查詢所有更高階別的目錄樹,從請求的URL或檔案查詢直到伺服器的根目錄,然後為每個請求載入它們。然後,它需要處理這些檔案並針對以這種方式配置的每個目錄重新配置。

使用WordPress網站,事情可能會變得非常複雜。一個典型的WordPress網站可以有來自不同目錄的數百個請求。

從/wp-content/uploads/yyyy/mm型別的目錄中,通常在單個頁面載入中會有多個請求,通常形成不同的月份目錄。然後將有/wp-content/themes/parent-theme靜態資源,/wp-content/themes/child-theme資源:這些資源將包括javascript,css檔案,影象。

然後還將有/wp-content/plugins,這些檔案通常從數十個外掛子目錄中載入靜態檔案。對於這些資源中的每一個,Apache必須查詢其整個樹以查詢配置。

一項分析表明,典型的WordPress設定(對於共享主機上的網站相當普遍)將包括42個單獨的.htaccess執行和249個單獨的.htaccess執行查詢。

這只是在Web伺服器級別。訪問者仍然需要等待PHP流程執行整個WordPress呼叫堆疊以建立資料庫查詢,並將其提供給MySQL以組裝網頁並將其傳送給訪問者。

Modules

使Apache流行的另一個原因是它的動態模組系統

Nginx和Apache中都存在模組(作為允許使用者擴充套件Web伺服器功能的功能)。一旦Web伺服器已經安裝和部署,Apache便允許使用者安裝模組,然後根據需要啟用/禁用它們。基於Debian的發行版的命令允許啟用和禁用這些模組,而無需編輯任何配置檔案:a2enmod和a2dismod。

作為Apache標準發行版的一部分的模組列表,其中包括壓縮,加密,日誌記錄,重定向到更高階的內容,例如使用高階語法編輯請求和響應。

優缺點

優點

  • 開源解決方案,個人和組織均可免費使用。
  • 支援可增強其功能的第三方模組、外掛和擴充套件。
  • 靈活可靠的伺服器軟體,具有強大的測試和開發記錄。
  • 來自活躍使用者群的社羣支援。
  • 提供伺服器配置的 root 訪問許可權;非特權使用者可使用 .htaccess 檔案編輯許可權。
  • 非常適合共享主機環境。

缺點

  • 資源密集型軟體,可能比其他軟體消耗更多的 CPU 和記憶體。
  • 由於其資源密集型特性,可能不適合提供靜態內容。
  • 功能繁多,配置複雜。
  • 不支援非同步處理。

Nginx

Nginx(也稱為nginx或NGINX)於2004年出現,由俄羅斯開發人員Igor Sysoev首次公開發行。

正如Nginx的專案經理Owen Garrett所說

“ Nginx是專門為解決Apache Web伺服器的效能限制而編寫的。”

該伺服器於2002年首次建立,作為rambler.ru網站的擴充套件工具。它有兩個版本:具有BSD型別許可證的開源版本和提供企業支援和附加功能的Nginx Plus

Nginx釋出後,主要用於提供靜態檔案,並在Apache安裝之前用作負載均衡器或反向代理。隨著網路的發展以及對速度極致追求,硬體使用效率需求,越來越多的網站開始使用Nginx完全替換Apache。當然這也要歸功於Nginx開始變得更加成熟和穩定。

NGINX Inc被F5 Networks收購

NGINX Inc被F5 Networks收購

2019年3月,Nginx Inc被F5 Networks以6.7億美元收購。當時,正如Techcrunch報道的那樣,Nginx伺服器正在為“3.75億個網站包括約1,500個付費客戶”提供服務。

根據w3techs的資料,Nginx的市場份額一直在穩定增長,從資料表上看,感覺NG從一開始就在蠶食Apache的市場份額:

Web伺服器市場佔有率

Web伺服器市場佔有率

這些資料涉及全球範圍內的Web伺服器,但是如果我們從前一百萬個網站中抽取樣本,則發現Nginx已經超越Apache:

使用Nginx的網站百分比

使用Nginx的網站百分比

Google搜尋趨勢似乎也反映了這一事實:

Google搜尋趨勢:Nginx與Apache

Google搜尋趨勢:Nginx與Apache

Netcraft的調查表明,Apache已於2019年4月被Nginx超越。

Nginx配置

Nginx沒有像Apache這樣的配置系統,這也是為什麼儘管它效率更高,速度更快,但並未廣泛地用於虛擬主機提供商。它在共享環境中不像Apache那樣發光。

伺服器架構圖

伺服器架構圖

另一方面,不允許目錄級別的配置,Nginx相對於Apache獲得了顯著優勢。Nginx Wiki上有一篇文章關於NG和Apache的效能比較:

Nginx vs Apache效能對比

Nginx vs Apache效能對比

Nginx模組

Nginx模組系統定位為更高階選擇。Nginx模組通常需要在構建時啟用,這意味著需要更多的技術,並且在安裝後新增模組會更加複雜。

在2016年的1.9.11版中,情況有所變化,官方或者經過驗證的動態模組儲存庫保留給付費使用者。從2019年5月開始,他們宣佈開始開發對QUIC和HTTP/3的支援

優缺點

優點

  • 非同步和事件驅動架構使 NGINX 成為多併發請求的理想選擇。
  • 是高流量伺服器的理想選擇。
  • 可用作反向代理伺服器。
  • 佔用記憶體少,CPU 和記憶體使用效率高。
  • 易於配置和使用,即使是初學者也能輕鬆上手。
  • 活躍的社羣支援和文件

缺點

  • 對 Windows 作業系統的支援有限。
  • 不支援本地動態內容,所有動態內容都要先向後端伺服器傳送代理請求,然後才提供給客戶端。
  • 嚴重依賴外部第三方模組的使用。

深入對比

架構

伺服器軟體的架構是指其內部機制和佈局,這些機制和佈局決定了伺服器軟體如何處理連線、網路請求和使用者流量。將 Apache 和 NGINX 的架構想象成汽車引擎的內部結構,以及每個元件如何幫助它們提供最佳服務。

Apache

如前所述,Apache 預設使用程序驅動架構,由一個執行緒處理每個連線請求–執行緒是排程程式所能處理的最短指令流。

不過,Apache 也有一些潛在的缺點。嚴重的資源消耗和缺乏對非同步處理的支援會降低伺服器的執行速度,增加頁面載入時間,有時甚至會導致網站中斷。

Apache 使用多處理模組(MPM)巧妙地解決了這些問題,MPM 接受並響應伺服器請求。作為使用者,您可以從三個主要 MPM 中任選一個來優化伺服器,但一次只能載入一個 MPM。

Apache 2.4 中的 MPM 包括

  • mpm_worker:Worker MPM 為每個程序建立多個執行緒,每個執行緒可以處理一個連線請求。由於 MPM 中的每個執行緒所需的資源比單個程序少,因此係統現在可以同時為多個執行緒提供服務,並能更好地擴充套件。
  • mpm_event:這種 MPM 與 Worker MPM 很相似,但也能處理保持連線。它在將執行中的請求分配給其他執行緒的同時,會留出執行緒來保持某些連線的存活。這樣,保持連線請求就不會拖慢整個系統的執行速度。這使得事件 MPM 成為 Apache 伺服器中最節省資源的選項。
  • mpm_prefork:這是一種無執行緒 MPM,每個子程序一次只能處理一個請求。一旦請求超過指定數量,伺服器效能就會受到嚴重影響,使用這種 MPM 進行擴充套件就會出現問題。預分叉 MPM 是穩定性和相容性的理想選擇。

NGINX

NGINX 的架構是非同步和事件驅動的,這意味著它可以在單個程序內同時處理多個連線。它通過執行一個控制器程序和多個子程序來實現這一功能。

這種架構使 NGINX 成為可擴充套件性的理想選擇,因為即使在低功耗系統上,它也能有效地將客戶端請求分配給各個程序。

控制器程序執行讀取和解釋配置檔案、繫結埠以及組建子程序等高階操作。

子程序對 NGINX 的執行至關重要,它們可分為三類:

  • Worker 程序:處理數千個併發 HTTP 連線,無需新程序或執行緒。工作程序獨立執行,建立處理單個請求執行緒的工作連線。它們還能讀寫內容到伺服器磁碟,並與上游伺服器通訊。
  • 快取載入器程序:這些程序將磁碟快取載入到其他工作程序使用的共享記憶體中。它們只在 NGINX 啟動後執行一次。
  • 快取管理器程序:將快取資料保持在配置的限制範圍內,並定期檢查以刪除訪問時間最長的資料。

如果你的網站(如電子商務商店或雲端儲存服務)流量很大,NGINX 可能是你的最佳選擇。

雖然 Apache 有支援多程序的多處理模組,但 NGINX 的非同步事件驅動架構更勝一籌。NGINX 更適合高流量和可擴充套件性。不過,Apache 的架構意味著它可以處理需要更多相容性的穩定專案。

效能

接下來是 NGINX 和 Apache 在內容交付(即動態和靜態內容交付)方面的效能比較。動態內容會根據使用者的行為、興趣和選擇而改變。而靜態內容則是不做任何修改直接向網頁提供。

Apache

Apache 使用基於檔案的方法提供靜態內容,這是任何 MPM 都能提供的功能。除此之外,它還是一款出色的動態內容交付伺服器軟體。它只依賴其內部元件,並在每個 Worker 例項中整合了一個獨特的程式語言處理器。

您可以使用 Apache 的可載入模組啟用每個模組中的語言處理器。這樣,Apache 伺服器就可以在伺服器內執行動態內容,而無需外部軟體支援。

NGINX

NGINX 採用非同步架構,比 Apache 提供靜態檔案的速度更快。這使它成為靜態網頁內容的理想伺服器軟體。然而,在傳輸動態內容時,它就顯得力不從心了。

由於 NGINX 沒有處理動態內容的內建功能,它將使用外部程序來執行。它必須等待外部軟體處理並返回解碼後的內容,然後再將其傳送回瀏覽器。這意味著對管理員配置的要求更高。

快取問題:Nginx與Apache

快取可以看作是在網站訪問者訪問之前為他們準備內容,這樣當他們“敲門”時,您無需去尋找他們想要的內容。因為已經準備好了,無需等待就將其交給他們。

像Apache一樣,Nginx的典型設定曾經是放置在伺服器和終端使用者之間,以減輕對基礎架構其餘部分的效能影響。在這種情況下,它可以快取靜態內容,而無需每次都從受保護的原始伺服器獲取靜態內容。

如果我們將Nginx用作獨立的Web伺服器,則沒有這種需求。Nginx可以非常有效地自行提供靜態內容。

然後是動態快取或頁面快取的問題。以WordPress網站為例,這意味著將為每個URL生成的所有WordPress頁面儲存在記憶體或磁碟中。

在標準的Nginx安裝中,FastCGI快取即本地可用。它簡單,功能強大,但不是常用的Nginx功能之一。

要將其與Apache等效項進行比較,您應該知道Apache擁有mod_cache模組,據報道該模組容易產生與其他模組衝突的小故障。因此,與Apache一起部署的標準快取解決方案是Varnish HTTP加速器。儘管Varnish是專用的行業解決方案,但最近的一些測試表明Nginx快取對比Varnish也體現出明顯優勢

參考閱讀:

處理請求:Nginx與Apache

Apache和Nginx之間最大的區別在於它們處理請求的基礎架構。

Apache處理請求方式

Apache使用MPM或Multi-Processing-Modules處理請求,這是“負責繫結到計算機上的網路埠,接受請求並分派子程序來處理請求”。

最早的MPM可以追溯到Apache的最開始,它是prefork module。僅此模組就可以歸因於Apache的效能不良聲譽。在這種模式下,Apache會在每個請求中產生一個執行緒的新程序。

該模組與mod_php一起使用,意味著Apache伺服器在每個程序中都嵌入了一個PHP直譯器,即使它必須提供CSS檔案或影象也是如此。

這是低效的。Prefork模組是Apache附帶的預設模組。它還將連線限制為HTTP/1。

在後來的幾年中,Apache開發了多執行緒工作程式mpm,之後又開發了事件mpm。它們都減輕了許多Apache的效能問題。切換到php-fpm使得Apache仍然可以成為當今的競爭解決方案,同時消除了對.htaccess的使用,但是這種做法違背了它的目的。

Nginx處理請求方式

Nginx使用非同步,非阻塞事件驅動的體系結構。

解釋差異:在Linux/Unix世界中,程序即執行程式(processes are running programs)。

執行緒是程序的子集,一個程序執行中可以有多個執行緒。可以將其視為瀏覽器視窗中的多個選項卡。這樣,程式可以利用多個CPU和多核,多執行緒CPU來更快地執行。您可以閱讀Linus Torvalds,詳細說明它們之間的區別

簡而言之,Apache對每個連線使用程序(對於worker mpm,它使用執行緒)。隨著流量的增加,這顯然太奢侈了。

我們可以描述新的過程或執行緒建立,例如啟動計算機或啟動程式。即使在最快的計算機上,在單個頁面上載入數百個請求,它仍然需要一些時間。

事件mpm在優化方面走得更遠,但是一些測試表明它不能超過Nginx。尤其是當我們談論靜態檔案時,Nginx的服務量是Apache的兩倍。

Nginx理想情況下,每個CPU/核心只有一個工作程序。Nginx工作程序的區別在於,每個工作程序的每個程序器處理成千上萬的傳入網路連線,而無需為每個連線建立新的執行緒或程序。

這就是為什麼主流的CDN伺服器商(例如CloudflareMaxCDNNetflix這樣的網站)均採用Nginx,因為它對內容分發工作的處理效率更高。參考閱讀:針對使用Cloudflare CDN國內網站的速度優化方案

使用Nginx作為Web伺服器的公司實在太多太多,無法一一列舉。

即時WordPress.com旗下的Automattic在2008年將所有負載均衡器都轉換為Nginx(相關閱讀),並將其伺服器堆疊完全遷移到Nginx

Apache 和 NGINX 在傳輸靜態內容時都很出色,但 Apache 是傳輸動態內容的理想選擇。NGINX 本身並不處理動態內容,可能需要一個外部處理器來處理它能適應的協議。

安全

在 Apache 和 NGINX 之間做出選擇時,安全性是另一個重要的考慮因素。這兩種伺服器系統都很安全,但它們處理安全問題的方式不同。

Apache

多年來,Apache 一直是 HTTPD 伺服器連線的安全軟體。不過,您仍然可以對伺服器進行配置,以提高安全性。

Apache 使用三種配置設定來挫敗拒絕服務(DDoS)攻擊:

  • TimeOut:定義伺服器在請求失敗前等待的時間(預設為 60 秒)。
  • KeepAliveTimeout:管理 Apache 伺服器連線為新請求保持開放的時間。
  • RequestReadTimeout:切斷與傳送請求速度慢於預期的使用者的連線。

NGINX

NGINX 開箱即提供速率限制功能,可管理傳入請求的速率。如果速率值超過或低於典型的瀏覽器活動,NGINX 就會中斷連線。其獨特的架構還能保護上游伺服器免受過多請求(分散式拒絕服務(DDoS)攻擊的症狀)的影響。

您還可以對 NGINX 進行配置,拒絕特定 IP 地址、頻寬和子請求的訪問。此外,NGINX 還支援傳輸層安全(TLS)和安全套接字層(SSL)協議。

Apache 和 NGINX 都能提供卓越的安全功能,滿足您的需求。不過,您可能需要額外的安全措施來保護網站免受惡意攻擊。

配置

在設定伺服器軟體時,您會注意到 Apache 和 NGINX 模組系統之間的重要區別。

Apache

Apache模組

Apache 有多個可動態載入的模組,您可以在需要時啟用。這些 Apache 模組適用於多種任務,包括設定環境變數、重寫 URL 和定義過期時間間隔。

您可以在 .htaccess 檔案中設定更多的目錄級配置。這些檔案允許你在不影響其他區域的情況下配置伺服器中的目錄。

.htaccess 檔案的好處是,伺服器執行這些檔案時不需要重新載入伺服器,而且只要這些檔案位於請求路徑上,就會被解釋。此外,非特權使用者可以控制特定的網站元素,而無需控制完整的配置檔案。

許多託管服務提供商使用 Apache,因為他們可以保持對主要配置的控制,甚至可以讓客戶控制目錄。

NGINX

NGINX動態模組

與 Apache 不同,NGINX 不解釋 .htaccess 檔案,也不提供訪問和配置每個目錄檔案的其他方法。

相反,所有設定都在主配置檔案中提供。雖然這使得 NGINX 的靈活性降低,但卻帶來了速度上的優勢。

NGINX 還配備了額外的第三方模組,可進一步增強其功能。中級和高階使用者也可以構建自己的模組。與 Apache 不同,除非購買企業版,否則 NGINX 不支援動態模組。否則,必須使用免費的 NGINX 版本編譯命令後才能執行。

Apache 更靈活;你可以使用 .htaccess 檔案對其進行配置。這樣就可以將目錄與伺服器的其他檔案分開配置。NGINX 沒有 Apache 靈活,但它比 Apache 更快、更高效。

支援

在選擇主機時,技術支援是一個重要的考慮因素。在選擇系統之前,必須瞭解你所選擇的伺服器軟體是否能為效能優化提供可靠的支援。

Apache

Apache 網站

Apache 擁有涵蓋其所有關鍵方面的資訊和文件庫。Apache 網站提供釋出說明、手冊、指南、教學和其他資訊,可以幫助您更好地使用 Apache。

此外,您還可以訪問 Stack Overflow 和 Freenode IRC 網路上的社羣,其他使用者可以幫助您解決常見問題。

NGINX

還有很多社羣論壇涉及 NGINX 問題,開發人員在這些論壇上為新老使用者提供建議和技巧。他們的網站上就有這樣一個論壇,但在社交媒體和網際網路上還有許多其他論壇。

NGINX論壇
NGINX 還在其網站上提供大量學習資源,包括文件、網路研討會、資料表和部落格文章。您還可以通過即時聊天獲得 NGINX 團隊的專門支援。客戶支援團隊可以幫助您進行安裝設定或排除故障。

NGINX 和 Apache 提供多種支援選項,可幫助您解決有關伺服器的任何問題。但與 Apache 不同的是,NGINX 團隊提供即時聊天,這對於需要直接互動來部署或安裝 NGINX 軟體的使用者來說是一個有用的工具。

如何檢視網站所使用的Web伺服器

如果我們要檢查網站使用了什麼Web伺服器,通常可以在HTTP響應標頭中找到它。右鍵單擊一個網站>開發者工具Inspect,在開發人員工具中,我們將選擇Network網路面板,然後重新載入該網站。我們將看到網站正在載入的所有資源。如果選擇任何特定資源及其“Header選項卡,通常將看到伺服器資訊。如果網站使用CDN,則在伺服器行中我們可能會看到類似Cloudflare的內容,如果網站使用HTTP加速器,我們可能會看到類似Varnish的內容。

這是一個WordPress網站的示例,該網站使用典型的共享主機設定以及cPanel,Apache和PHP:

Apache伺服器網站HTTP標頭

Apache伺服器網站HTTP標頭

這是使用Nginx作為Web伺服器的網站:

Nginx伺服器網站HTTP標頭

Nginx伺服器網站HTTP標頭

在左側,如果我們對其進行擴充套件,還可以分析每個資源的時間,並檢視其對整個頁面載入時間的影響。

Apache 與 NGINX:哪一個適合您?

對於 NGINX 與 Apache 之爭,沒有一個放之四海而皆準的答案。不過,這裡有一些好的經驗法則,可以幫助你做出決定。

如果出現以下情況,NGINX 會更好

  • 您的網站流量非常大。
  • 需要快速提供大量靜態資產。
  • 您正在構建微服務架構。
  • 你喜歡更精簡的配置風格。
  • 您正在使用容器或雲主機,記憶體的每一盎司都很重要。

如果出現以下情況,Apache 會更好

  • 您需要深度相容 Apache 專屬功能(如.htaccess)。
  • 需要使用模組實現超級特定功能。
  • 需要執行為 Apache 和 mod_php 構建的舊版網路應用程式。
  • 您對 Apache 配置系統情有獨鍾。
  • 您的伺服器主要用於開發,對效能要求不高。

沒有規定說你必須選擇一個。

在 Apache 前面執行 NGINX 作為反向代理是很常見的。這樣,您就可以將 NGINX 無與倫比的靜態檔案服務和併發處理功能與 Apache 在後端豐富的動態語言支援結合起來–兩全其美。

小結

在本文中,重點介紹了Nginx與Apache,並解釋了主要的體系結構差異,在很多方面Nginx表現出其獨特的優勢,尤其在WordPress方面,Nginx在很大程度上實現極致的伺服器優化支援。

當然,並非每個用例都具有相同的優先順序,Apache或其他工具(例如LighttpdIISLiteSpeedCaddy)可能是不錯的解決方案。

也就是說,沒有最好的Web伺服器,只有最合適的Web伺服器。本文只是,在有限的方面,指出Nginx的優勢特徵,以幫助站長選擇更合適自己的Web伺服器。

評論留言