Apache2效能最佳化

許多人使用 apache2 作為 Web 伺服器。 然而,很少有人考慮優化其效能,這直接成比例地影響網站頁面的載入速度、處理腳本(特別是php)的速度,以及CPU負載的增加和RAM使用量的增加。

因此,以下手冊應該可以幫助初學者(而不僅僅是)使用者。
以下所有範例均在樹莓派 3 上使用。 Debian 9、Apache 2.4.38、PHP 7.3。

那麼,讓我們開始吧。

1.停用未使用的模組

第一種方法是簡單地停用不使用的模組:

可以使用以下命令查看目前使用的模組清單:

apache2ctl -M

若要停用該模組,請使用以下命令:

a2dismod *название модуля*

因此,要啟用該模組,請使用以下命令:

a2enmod *название модуля*

使用時請注意 a2dismod,模組的名稱必須不包含模組一詞。

例如,如果您在命令的輸出中 apache2ctl-M代理模組,然後要停用它,您需要使用命令 - a2dismod代理

系統負載最多的模組(根據個人經驗)是:

  • PHP、Ruby、Perl 等各種腳本語言的模組
  • SSL
  • 改寫
  • CGI

因此,如果您不需要這些模組,我建議停用這些模組。

另外,禁用任何模組後,我建議使用命令 - apache2ctl 配置測試,它將檢查所使用站點的配置,如果它們需要任何停用的模組,則會產生錯誤。

2.更改MPM(多處理模組)並使用php-fpm

預設情況下,安裝後,apache2使用MPM Prefork(每1個連接1個執行緒),這顯著降低了效能,但同時提高了穩定性和安全性。

但為了優化效能,我建議使用 MPM Worker,它允許您在每個連接上使用多個執行緒。

要啟用它,我們使用以下命令:

a2dismod mpm_prefork  //Отключаем prefork
a2dismod php7.3  //Отключаем модуль php, который зависит от prefork
a2enmod mpm_worker  //Включаем worker

然而,在使用 Worker 時你可能會遇到問題,因為... php7.3模組依賴Prefork模組。

為了解決這個問題,讓我們安裝 php7.3-fpm 模組,它將用於執行 PHP 腳本:

apt-get update && apt-get install php7.3-fpm  //Устанавливаем
systemctl enable php7.3-fpm && systemctl start php7.3-fpm  //Добавляем в автозагрузку и запускаем
a2enmod php7.3-fpm && a2enconf php7.3-fpm.conf  //Включаем модуль и конфиг для него

值得注意的是,使用 php-fpm 也會減少 apache2 進程所使用的 RAM 量,並且稍微加快 PHP 腳本的處理速度。

3.Заключение

因此,透過這些簡單的操作,我們能夠優化效能並減少機器的負載(在本例中為 RPI3)。

當然,還有數百個其他最佳化選項,例如啟用壓縮(這確實很有用,但大多數已預設啟用)、更改 MPM 設定(設定檔)、停用 HostnameLookups 等,但在本文中我嘗試反思這些是對我幫助最大的點,也希望對其他人有幫助。

來源: www.habr.com

為具有 DDoS 保護、VPS VDS 服務器的站點購買可靠的主機 🔥 購買具備 DDoS 防護的可靠網站寄存服務,包括 VPS 和 VDS 伺服器 | ProHoster