Apache-2.2

Nginx + php-fpm VS Nginx 作為 Apache 的反向代理

  • May 6, 2018

有人可以告訴我將 NginX 作為 Apache 的反向代理有什麼好處。人們建議這樣,靜態內容由 nginx 處理,而動態內容(php 文件)則交給 Apache。

  1. 難道直接讓 php-fcgi/php-fpm 處理這些 PHP 文件比讓 Apache 的 mod_php 處理更合理嗎?
  2. 有什麼優勢(性能方面)
  3. 如果我選擇反向代理,我是否需要重寫 nginx 或者 apache 中的 .htaccess 是否可以正常工作?(因為它的反向代理,所以呼叫被定向到 apache 對嗎?)

提前TY

反向代理速度較慢且通常更糟,但是,使用它的一些原因是為了保持(某些)與 .htaccess 文件的兼容性(如果您使用純 nginx 設置,您必須編寫(這並不總是實用))或者如果您需要特定的 apache 模組。(有人可能會爭辯說,如果你有這些要求,使用 apache 會更容易。)

  1. 帶有 nginx 的 PHP-FPM 將是首選解決方案 - 您可以獲得 nginx 的快速靜態文件服務和良好的 PHP 性能,而無需增加額外的成本、代理或(通常)大量的 apache 記憶體使用。
  2. nginx+PHP-FPM(通常)更快並且使用更少的記憶體。Nginx + Apache + FastCGI/FPM 仍將快速提供靜態文件,但會對動態文件產生額外的成本(不如 mod_php 糟糕,但比消除 apache 更糟糕)。
  3. 您將需要兩者兼而有之——nginx 需要知道如何處理路徑(例如,用於提供靜態文件、拒絕訪問 .htaccess 等),而 apache 需要知道如何處理文件。在某些情況下,如果您的 .htaccess 文件不屬於靜態文件(因此需要重寫的每個請求都將轉到 apache),那麼簡單地拒絕訪問某些位置並讓 apache 完成其餘工作可能是可以接受的通過 .htaccess - 它似乎並不理想,會在性能上花費一些,而且它的可靠性值得懷疑 - 但它可以在簡單的設置上工作)。

如果可以,請直接使用 nginx+PHP-FPM 設置。如果你不能,雖然反向代理可能有一些優點,但要考慮後果,特別是如果你依賴 .htaccess 文件。

引用自:https://serverfault.com/questions/298208