許多人使用 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
