欧美性猛交xxx嘿人猛交_又色又爽又高潮免费观看_精品国产一区二区三区久久影院_青娱乐极品视觉盛宴国产视频

技術頻道導航
HTML/CSS
.NET技術
IIS技術
PHP技術
Js/JQuery
Photoshop
Fireworks
服務器技術
操作系統
網站運營

贊助商

分類目錄

贊助商

最新文章

搜索

誰更快?Apache和Nginx處理靜態和動態內容比較

作者:admin    時間:2022-3-22 10:39:23    瀏覽:

大多數人在開始要用到Web服務時,首先遇到的就是選擇哪個 Web 服務器問題。而 Apache 和 Nginx 是世界上最常見的兩種開源 Web 服務器。他們共同負責為互聯網上超過 50% 的流量提供服務。因此,大多數人會最終選擇 Apache 或 Nginx。

 誰更快?Apache和Nginx處理靜態和動態內容比較

在二選一的情況下,你不得不對這兩服務器進行一番比較。而速度的快與慢則又是大家確定選擇的重中之重。這正是書寫本文的初衷,本文將給大家介紹的是,Apache 和 Nginx 服務器處理靜態和動態內容請求的方式區別,這是它們之間最常見的比較之一。

Apache

Apache 服務器可以使用其傳統的基于文件的方法來處理靜態內容。這些操作的性能主要是 MPM 方法的函數。

Apache 提供了多種多處理模塊,Apache 將這些 MPM 稱為 MPM,這些模塊決定了如何處理客戶端請求。這些是:

  • mpm_prefork:這個處理模塊產生進程,每個進程都有一個線程來處理請求。
  • mpm_worker:這個模塊產生可以管理多個線程的進程。
  • mpm_event:該模塊在大多數情況下類似于工作模塊,但經過優化以處理保持活動連接。

Apache 還可以通過將相關語言的處理器嵌入到其每個工作實例中來處理動態內容。這允許它在 Web 服務器本身內執行動態內容,而無需依賴外部組件。這些動態處理器可以通過使用可動態加載的模塊來啟用。

Apache 在內部處理動態內容的能力直接促成了 LAMP(L inux- A pache- M ySQL- P HP)架構的流行,因為 PHP 代碼可以由 Web 服務器本身本地執行。

Nginx

Nginx 沒有任何原生處理動態內容的能力。為了處理 PHP 和其他對動態內容的請求,Nginx 必須將請求交給外部庫執行并等待輸出返回。然后可以將結果轉發給客戶端。

這些請求必須由 Nginx 和外部庫使用 Nginx 知道如何說話的協議之一(http、FastCGI、SCGI、uWSGI、memcache)交換。在實踐中,PHP-FPM是一種 FastCGI 實現,通常是一種插入式解決方案,但 Nginx 與任何單一架構的耦合不如 Apache 與 PHP 的緊密耦合。

但是,這種方法也有一些優點。由于動態解釋器沒有嵌入在工作進程中,它的開銷只會出現在動態內容中。靜態內容可以直接提供,只有在需要時才會聯系翻譯程序。

Apache 和 Nginx 之間最大的區別

Apache 和 Nginx 之間最大的區別在于它們處理請求方式的底層架構。

Apache 使用 MPM-s 或Multi-Processing-Modules處理請求,它“負責綁定到機器上的網絡端口、接受請求并調度子進程來處理請求”。

在后來的幾年里,Apache 開發了多線程工作者 mpm,之后又開發了事件 mpm。它們都減輕了 Apache 的許多性能問題。切換到 php-fpm 使得 Apache 有可能在今天仍然是一個競爭解決方案,同時消除了 .htaccess 的使用,但這違背了它的目的。

簡而言之,Apache 對每個連接都使用進程(對于 worker mpm,它使用線程)。隨著流量的增加,它很快就會變得過于昂貴。

我們可以想象新進程或線程的創建,例如啟動計算機或啟動程序。即使在最快的計算機上,它仍然需要一些時間。如今的網站在單個頁面加載時會發出數百個請求,這很快就會增加。

Event mpm 在優化方面走得更遠一些,但一些測試表明它無法超越 Nginx。尤其是當我們談論靜態文件時,Nginx 提供的請求是 Apache 的兩倍

Nginx 理想情況下每個 CPU/核心有一個工作進程。Nginx 工作進程的不同之處在于每個工作進程可以處理數十萬個傳入網絡連接。無需為每個連接創建新線程或進程。

怎樣使用 Apache 和 Nginx

在了解了 Apache 和 Nginx 的優點和限制之后,你可能會更好地了解哪種服務器更適合你的需求。在某些情況下,可以通過一起使用每個服務器的優勢來利用它們。

這種合作關系的常規配置是將 Nginx 作為反向代理放在 Apache 前面。這將允許 Nginx 處理所有客戶端請求。這利用了 Nginx 的快速處理速度和同時處理大量連接的能力。

對于 Nginx 擅長的靜態內容,文件或其他指令將快速直接地提供給客戶端。對于動態內容,例如 PHP 文件,Nginx 會將請求代理到 Apache,然后 Apache 可以處理結果并返回呈現的頁面。Nginx 然后可以將內容傳遞回客戶端。

這種設置適用于許多人,因為它允許 Nginx 充當分揀機。它將處理它可以處理的所有請求,并傳遞它沒有本機服務能力的請求。通過減少要求 Apache 服務器處理的請求,我們可以減輕在 Apache 進程或線程被占用時發生的一些阻塞。

此配置還通過根據需要添加額外的后端服務器來促進水平擴展。Nginx 可以配置為將請求傳遞給多個服務器,從而提高此配置的性能。

結論

Apache 和 Nginx 都強大、靈活且有能力。確定最適合你的服務器很大程度上取決于評估你的特定需求并使用你期望看到的模式進行測試。

這些項目之間的差異會對原始性能、功能和在生產中使用任一解決方案所需的實施時間產生非常實際的影響。使用最符合你的目標的解決方案。

標簽: apache  nginx  linux技術  
x