溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Nginx和Apache區(qū)別有哪些

發(fā)布時(shí)間:2022-02-16 15:50:32 來源:億速云 閱讀:174 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要講解了“Nginx和Apache區(qū)別有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Nginx和Apache區(qū)別有哪些”吧!

Nginx和Apache一樣,都是HTTP服務(wù)器軟件,在功能實(shí)現(xiàn)上都采用模塊化結(jié)構(gòu)設(shè)計(jì),都支持通用的語言接口,如PHP、Perl、Python等,同時(shí)還支持正向和反向代理、虛擬主機(jī)、URL重寫、壓縮傳輸、SSL加密傳輸?shù)取?/p>

Apache 和 NGINX 的主要區(qū)別在于其設(shè)計(jì)架構(gòu)。Apache 使用進(jìn)程驅(qū)動(dòng)的方法,并為每個(gè)請(qǐng)求創(chuàng)建一個(gè)新線程。NGINX 使用事件驅(qū)動(dòng)的體系結(jié)構(gòu)來處理一個(gè)線程中的多個(gè)請(qǐng)求。

Nginx和Apache區(qū)別有哪些

什么是 Apache HTTP 服務(wù)器?

Apache HTTP 服務(wù)器是一種開源跨平臺(tái) Web 服務(wù)器,也稱為”httpd”和 Apache。他是Apache 軟件基金會(huì)管理其品牌和服務(wù)。服務(wù)器由 ASF 下的開放開發(fā)人員社區(qū)開發(fā)和維護(hù)。Apache 主要運(yùn)行在 Linux 上,它支持全球 46% 的網(wǎng)站。它是 LAMP(Linux、Apache、MySQL、PHP)堆棧的關(guān)鍵組件。

什么是 NGINX Web服務(wù)器?

什么是NGINX?發(fā)音為? 它的發(fā)音是 “Engine X” 它是伊戈?duì)?amp;middot;西索耶夫在 2004 年發(fā)布的 Web 服務(wù)器。今天,它不僅僅是一個(gè)網(wǎng)絡(luò)服務(wù)器!起初,人們大多使用 Nginx 作為Apache的補(bǔ)充.它主要用于提供靜態(tài)文件,但今天,它已演變?yōu)橐粋€(gè)完整的Web服務(wù)器,處理整個(gè)web服務(wù)器任務(wù)。Nginx 經(jīng)常用作反向代理、負(fù)載均衡器、郵件代理和 HTTP 緩存。Apache和Nginx都是Linux最常見的網(wǎng)絡(luò)服務(wù)器。它們共同為網(wǎng)絡(luò)流量的 50%以上提供服務(wù)。

雖然阿帕奇和NGINX有許多共同的品質(zhì),但在許多方面是不同的。每個(gè)都以自己的方式出類拔萃,并有自己的用途和方案。為了了解差異并得出結(jié)論,讓我們通過下面的詳細(xì)、端到端的比較。我們還提到每個(gè)點(diǎn)結(jié)束時(shí)每個(gè)比較點(diǎn)的優(yōu)勝者。

Nginx和Apache區(qū)別有哪些

基本架構(gòu)

當(dāng)談到Apache 和Nginx 時(shí),根本區(qū)別在于他們的設(shè)計(jì)架構(gòu)。這意味著它們的實(shí)際處理連接和流量以及響應(yīng)不同的流量條件的方式不同。一種是過程驅(qū)動(dòng)的方法,另一個(gè)是事件驅(qū)動(dòng)的體系結(jié)構(gòu)。

Apache

流程驅(qū)動(dòng)方法,為每個(gè)請(qǐng)求創(chuàng)建一個(gè)新線程。Apache 采用多線程方法。它提供各種多個(gè)處理模塊。這些預(yù)模塊基本上是三種類型的請(qǐng)求處理算法。每個(gè)都用于不同的服務(wù)器需求。MM(多處理模塊)提供了一個(gè)靈活的架構(gòu),用于選擇不同的連接和不同的處理算法。此外,不同版本的 Apache 2 采用不同的游行模塊。三個(gè)主要的 Apache MM 是:過程(預(yù)叉) MPM、工人 MPM、事件 MPM 。默認(rèn)情況下,Apache 2.2 配置為預(yù)叉模式(mpm_prefork)。它響應(yīng)一組進(jìn)程,每個(gè)進(jìn)程一次可以處理單個(gè)請(qǐng)求。換句話說,Apache 每次都會(huì)創(chuàng)建一個(gè)新線程來處理每個(gè)連接請(qǐng)求。線程是可由調(diào)度程序獨(dú)立管理的最小編程指令序列。在大多數(shù)情況下,線程是進(jìn)程的組件。但是,Apache 的基本體系結(jié)構(gòu)可能導(dǎo)致大量資源消耗,因此,可能會(huì)導(dǎo)致服務(wù)器的問題(例如速度慢)。Nginx和Apache區(qū)別有哪些

Nginx

事件驅(qū)動(dòng)方法,在一個(gè)線程內(nèi)處理多個(gè)請(qǐng)求,Nginx 使用事件驅(qū)動(dòng)的體系結(jié)構(gòu),并異步處理請(qǐng)求。它旨在使用非阻塞事件驅(qū)動(dòng)連接處理算法。因此,其進(jìn)程可以在一個(gè)處理線程中處理數(shù)千個(gè)連接(請(qǐng)求)。這種連接過程模塊使 Nginx 能夠以有限的資源快速、寬工作。此外,您還可以在低功耗系統(tǒng)上和在重負(fù)載下運(yùn)行的系統(tǒng)上使用 Nginx。Nginx和Apache區(qū)別有哪些

贏家是 NGiNX – 它的結(jié)構(gòu)輕量級(jí),架構(gòu)比 Apache 快得多。性能以 Apache vs Nginx 來說,兩個(gè) Web 服務(wù)器對(duì)靜態(tài)和動(dòng)態(tài)內(nèi)容處理方式都不同。他們說 Nginx 在處理靜態(tài)內(nèi)容時(shí)更好, 讓我們看看這是真的!

靜態(tài)內(nèi)容

Apache

使用基于文件的方法提供靜態(tài)內(nèi)容,靜態(tài)內(nèi)容或文件通常是存儲(chǔ)在服務(wù)器計(jì)算機(jī)上磁盤上的文件,例如 CSS 文件、JavaScripts 文件或圖像。Apache 使用其傳統(tǒng)的基于文件的方法處理靜態(tài)內(nèi)容。

Nginx

在提供靜態(tài)內(nèi)容時(shí), Nginx 是大哥。由于 Nginx 的設(shè)計(jì)架構(gòu)更有能力處理負(fù)載,因此在提供靜態(tài)內(nèi)容方面速度要快得多。根據(jù)高達(dá) 1,000 個(gè)同時(shí)連接的基準(zhǔn)測試,其性能比 Apache 快 2.5 倍。Nginx 為靜態(tài)資源服務(wù),而 PHP 無需了解這一點(diǎn)。另一方面,Apache 以昂貴的開銷處理所有這些請(qǐng)求。這使得 Nginx 更加有效,對(duì)系統(tǒng)資源的要求更低。

這個(gè)小圖像顯示的是靜態(tài)內(nèi)容請(qǐng)求,以秒處理。Nginx 顯然在這里超過了Apache!

Nginx和Apache區(qū)別有哪些

動(dòng)態(tài)內(nèi)容

Apache

Apache 可以在 Web 服務(wù)器本身中處理動(dòng)態(tài)內(nèi)容,而無需依賴任何外部組件。所以,它可以處理你的本身。談?wù)?Apache vs Nginx 性能:在考慮動(dòng)態(tài)內(nèi)容處理時(shí),Nginx(如果不是更好的話)幾乎相等。下面是對(duì)動(dòng)態(tài)內(nèi)容請(qǐng)求數(shù)的比較。貌上沒什么區(qū)別。

Nginx和Apache區(qū)別有哪些

Nginx

它不處理動(dòng)態(tài)內(nèi)容,談到動(dòng)態(tài)內(nèi)容,Nginx 無法像 Apache 那樣在 Web 服務(wù)器中處理動(dòng)態(tài)內(nèi)容。所有具有動(dòng)態(tài)網(wǎng)頁內(nèi)容的請(qǐng)求都傳遞到外部進(jìn)程(例如 PHP-FPM)執(zhí)行。Nginx 等待最終內(nèi)容返回并交付給客戶端。有關(guān)清晰想法,請(qǐng)參閱此圖像:Nginx和Apache區(qū)別有哪些

當(dāng)與 SCGI 處理程序和 FastCGI 模塊一起使用時(shí),NGINX 可以為動(dòng)態(tài)內(nèi)容提供服務(wù)。靜態(tài):就靜態(tài)內(nèi)容而言,Nginx 完勝 Apache。動(dòng)態(tài):兩者都擅長處理動(dòng)態(tài)內(nèi)容。

操作系統(tǒng)支持

操作系統(tǒng)支持可能是需要考慮的重要一點(diǎn),尤其是在比較 Apache 與 Nginx 時(shí)。但是,他們兩個(gè)幾乎相似在這里。

Apache

支持所有與 Unix 一樣的系統(tǒng),包括 Linux 和 BSD。它完全支持 MS-WindowsApache 運(yùn)行在各種與 Unix 一樣的系統(tǒng)(例如 Linux 或 BSD)上運(yùn)行,并且完全支持微軟 Windows。

Nginx

支持幾乎所有與 Unix 一樣操作系統(tǒng)。部分支持 Windows。它還在幾個(gè)現(xiàn)代 Unix 的系統(tǒng)上運(yùn)行,并且對(duì) Windows 有一些支持,但其 Windows 性能不像其他平臺(tái)那樣強(qiáng)大。

贏家是Apache在這里獲勝。

分布式/集中配置

阿帕奇 vs Nginx 是一個(gè)當(dāng)之無愧的話題。他們的配置使他們彼此不同,使他們同樣有趣。讓我們看看誰的配置更容易、更快。

Apache

通過 .htaccess 文件允許基于每個(gè)目錄進(jìn)行其他配置。此體系結(jié)構(gòu)允許非特權(quán)用戶控制其網(wǎng)站的某些方面,而無需授予他們編輯主配置的權(quán)限。這個(gè)很大!

Nginx

不允許進(jìn)行其他配置另一方面,它有一個(gè)缺點(diǎn)。它不提供其他配置。然而,它有利于你,因?yàn)檫@增加了性能。通過不允許目錄配置,它可以比 Apache 更快地提供請(qǐng)求。它不需要搜索 .htaccess 文件并解釋用戶制作的 req。

贏家:如果考慮配置,可進(jìn)行 Apache;如果考慮了配置,可進(jìn)行 APache。如果速度是 NGinx。

請(qǐng)求解釋

在 Apache vs Nginx 辯論中,解釋請(qǐng)求的方法是一個(gè)有趣的話題進(jìn)行比較。它們都以完全不同的方式處理和解釋請(qǐng)求。

他們不同的方法使他們獨(dú)特,也使一個(gè)比另一個(gè)更好一點(diǎn)。讓我們來探索一下!

Apache

傳遞文件系統(tǒng)位置,提供解釋要求的能力。作為文件系統(tǒng)位置的物理資源,可能需要更抽象的評(píng)估。它將請(qǐng)求作為文件系統(tǒng)位置傳遞。

當(dāng)然,Apache 確實(shí)使用 URI 位置,但它們通常用于更抽象的資源。在創(chuàng)建或配置虛擬主機(jī)時(shí),Apache 使用文檔根目錄下的目錄塊。

在使用 .htaccess 文件覆蓋特定目錄配置時(shí),也可以看到對(duì)文件系統(tǒng)位置的這種偏好。

Nginx和Apache區(qū)別有哪些

Nginx

通過 URI 來解釋請(qǐng)求,Nginx 被創(chuàng)建為 Web 服務(wù)器和反向代理服務(wù)器。由于這些架構(gòu)的要求,Nginx主要使用你的眼睛。必要時(shí)轉(zhuǎn)換為系統(tǒng)。它不提供指定配置的機(jī)制。對(duì)于文件系統(tǒng)目錄,則傳遞其 URI 本身。將請(qǐng)求(URI)而不是文件系統(tǒng)位置傳遞,使Nginx能夠輕松地在 Web 和代理服務(wù)器中運(yùn)行。它通過布局如何響應(yīng)差異請(qǐng)求模式來簡單配置。Nginx和Apache區(qū)別有哪些

它不會(huì)檢查文件系統(tǒng),直到它準(zhǔn)備好服務(wù)的請(qǐng)求它解釋了為什么它不實(shí)現(xiàn)任何形式的.htaccess文件。這種將請(qǐng)求解釋為 URI 位置的設(shè)計(jì)使 Nginx 不僅能夠輕松地充當(dāng) Web 服務(wù)器,還能夠用作代理服務(wù)器、負(fù)載均衡器和 HTTP 緩存。

此外,在 Apache vs Nginx 競賽中,NGINX 在傳輸速率(數(shù)據(jù)從服務(wù)器發(fā)送到客戶端的速度)方面再次獲勝。在大多數(shù)情況下,Nginx 以 500/100 的公平金額獲勝。

Nginx和Apache區(qū)別有哪些

贏家:似乎Nginx贏了, 因?yàn)樗慕忉尯头磻?yīng)更快。

功能模塊

兩者都是通過模塊系統(tǒng)可擴(kuò)展的。但他們的工作方式是不同的。讓我們比較兩個(gè) Web 服務(wù)器的功能模塊: Apache vs Nginx!

Apache

60 個(gè)可動(dòng)態(tài)加載的官方模塊,可打開/關(guān)閉Apache 服務(wù)器具有一組豐富的功能,可以通過安裝 60 個(gè)官方模塊之一來啟用這些功能。還有許多其他非官方的模塊,可以很容易地在互聯(lián)網(wǎng)上找到。

其模塊系統(tǒng)允許您動(dòng)態(tài)加載或卸載模塊,以滿足您的需求。其模塊可以打開或關(guān)閉以添加或刪除功能,并連接到主服務(wù)器。

簡而言之,Apache 有幾個(gè)功能模塊可滿足您的需求,但許多模塊并不經(jīng)常使用。

Nginx

第三方核心模塊(不可動(dòng)態(tài)加載)另一方面,Nginx被挑選并編譯為第三方插件的過程。不可動(dòng)態(tài)加載。這些模塊很有用,但是,它們?cè)试S您僅包括要使用的功能來決定從服務(wù)器獲得什么內(nèi)容。它被認(rèn)為比 Apache 服務(wù)器安全得多,因?yàn)槿我饨M件可以在服務(wù)器中連接。此外,NGINX 還提供 Web 服務(wù)器的所有核心功能,而不會(huì)犧牲成功所需的輕量級(jí)和高性能特性。Apache 就像微軟 Word,Nginx 就像記事本。Apache 有一百萬個(gè)選項(xiàng),但你只需要幾個(gè)。Nginx 做這些 “幾個(gè)” 的事情, 做他們比阿帕奇快 50 倍。

贏家:NGiNX – 它不太重要,但功能和模塊使它比 Apache 更輕、更智能、更好的 Web 服務(wù)器。

靈活性

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

Apache

支持通過動(dòng)態(tài)模塊自定義 Web 服務(wù)器。可以通過騎乘模塊對(duì) Web 服務(wù)器進(jìn)行自定義。Apache 的動(dòng)態(tài)模塊加載時(shí)間最長,因此所有 Apache 模塊都支持此功能。

Nginx

不夠靈活,無法支持動(dòng)態(tài)模塊和加載。然而,NGINX的情況并非如此。2016 年初,NGINX 獲得動(dòng)態(tài)模塊加載支持;以前,NGINX 要求管理員將模塊編譯為 NGINX 二進(jìn)制文件。大多數(shù)模塊尚不支持動(dòng)態(tài)加載,但隨著時(shí)間的推移,它們可能會(huì)支持動(dòng)態(tài)加載。贏家:Apache – 它顯然在這一點(diǎn)上領(lǐng)先。

安全

Apache vs Nginx 安全性再次成為爭論的話題。嗯,這兩個(gè) Web 服務(wù)器都為基于 C 的代碼庫提供了出色的擴(kuò)展安全性。

Apache

非常安全。Apache 確保所有在其服務(wù)器上運(yùn)行的網(wǎng)站都是安全的,不會(huì)受到任何傷害和黑客攻擊。因此,它提供了用于 DDoS 攻擊處理的配置提示,以及用于響應(yīng) HTTP DoS、DDoS 或暴力攻擊的 mod_evasive 模塊。

NGINX

最少的代碼實(shí)現(xiàn)更好的安全。然而,NGINX的代碼庫明顯小了幾個(gè)數(shù)量級(jí),所以從前瞻性的安全角度來看,這絕對(duì)是一個(gè)很大的優(yōu)勢(shì)。NGINX還列出了最近的安全建議。在Nginx博客上閱讀一篇關(guān)于抵御DDoS攻擊的文章。贏家:Nginx–它被認(rèn)為更安全

支持

支持是每個(gè)客戶都渴望得到的。它可以改變或破壞你的用戶體驗(yàn)。在比較Apache和Nginx支持時(shí),似乎沒有太大區(qū)別。

Apache

社區(qū)支持通過郵件列表、IRC和堆棧溢出完成。商業(yè)Apache支持可以從許多第三方公司獲得,比如OpenLogic,但是Apache基金會(huì)沒有維護(hù)官方列表。Apache服務(wù)器旨在為其所有用戶提供強(qiáng)大的支持。

Nginx

通過郵件列表、IRC、堆棧溢出和論壇提供社區(qū)支持。NGINX 背后的公司提供名為 NGINX Plus 的商業(yè)產(chǎn)品,該產(chǎn)品支持一組有關(guān)負(fù)載平衡、媒體流和監(jiān)控的額外功能。

贏家:!兩者的支持幾乎相同。兩個(gè) Web 服務(wù)器都很棒。

最終

Apache和nginx都無法被對(duì)方取代, 他們有他們的強(qiáng)弱。在了解好處、限制和差異之后,您可能已經(jīng)擁有了最適合您的 Web 服務(wù)器的想法。

在我們關(guān)于Apache對(duì) Nginx 的帖子中, 9分中的5分被 Nginx 贏得, 2 分被Apache和nginx “平局” 。因此,我們可以清楚地看到,NGINX領(lǐng)先Apache。

何時(shí)選擇阿帕奇而不是 Nginx?

i) 阿帕奇.

NGINX 不支持類似 Apache 的.htaccess 文件。但是,使用 Apache,您可以獲得優(yōu)勢(shì),讓非特權(quán)用戶控制其網(wǎng)站的某些重要方面。

顯然,用戶不允許編輯主配置。使用 .htaccess 文件,可以基于每個(gè)目錄覆蓋系統(tǒng)范圍的設(shè)置。為了獲得最佳性能,請(qǐng)將這些 .htaccess 指令包括在主配置文件中。在共享托管環(huán)境中,Apache 由于其 .htaccess 配置而效果更好。P.S.對(duì)于專用主機(jī)或VPS Nginx保持最好的選擇。

ii) 在功能限制的情況下 = 使用 Apache

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

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

何時(shí)選擇 Nginx 而不是阿帕奇?

i) 快速靜態(tài)內(nèi)容處理

Nginx 在處理來自特定目錄的靜態(tài)文件方面可以執(zhí)行更好的工作。

此外,上游服務(wù)器進(jìn)程不會(huì)被阻止,因?yàn)榇罅快o態(tài)內(nèi)容請(qǐng)求,因?yàn)?Nginx 可以同時(shí)處理它們。這顯著提高了后端服務(wù)器的整體性能。

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

ii) 非常適合高流量網(wǎng)站

如果我們談?wù)摰乃俣群投嗌倏蛻艨梢苑?wù)在高負(fù)載,Nginx將永遠(yuǎn)閃耀作為贏家超過阿帕奇。

這使得 Nginx 具有顯著輕量級(jí),非常適合服務(wù)器資源。這就是為什么大多數(shù) Web 開發(fā)人員更喜歡 Nginx 而不是 Apache。

特別是,如今的電子商店雇傭了一位Magento開發(fā)者,他們知道如何在高流量的網(wǎng)站上工作,并擅長在Nginx上工作。

簡言之,當(dāng)涉及到服務(wù)一個(gè)有大量的流量的網(wǎng)站,有沒有擊敗Nginx。

或者同時(shí)使用

同時(shí)使用,通過將每個(gè)服務(wù)器的優(yōu)勢(shì)一起使用,可以使用它們。

您可以將 Apache 前面的 Nginx 用作服務(wù)器代理(如下圖所示)。這利用了 Nginx 的快速處理速度和同時(shí)建立大無連接的能力。Nginx和Apache區(qū)別有哪些

對(duì)于靜態(tài)連接,Nginx 會(huì)將文件快速服務(wù)到客戶端。對(duì)于動(dòng)態(tài)內(nèi)容,例如 Php 文件,Nginx 反向代理服務(wù)器會(huì)將他們的請(qǐng)求代理到 Apache,然后 Apache 可以處理其結(jié)果并返回其呈現(xiàn)的頁面。

然后,Nginx 可以將最終內(nèi)容傳遞給客戶端。此外,它允許您有一個(gè)非常實(shí)用的網(wǎng)絡(luò)服務(wù)器,以服務(wù)您的客戶(大量用戶)非常快。

感謝各位的閱讀,以上就是“Nginx和Apache區(qū)別有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Nginx和Apache區(qū)別有哪些這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI