许多人将apache2用作Web服务器。 但是,很少有人考虑优化其性能,这直接影响网站上页面加载的速度,处理脚本(特别是php)的速度,以及CPU负载的增加和所用RAM数量的增加。
因此,以下手册应对初学者(不仅是用户)有所帮助。
以下所有示例均在Raspberry PI 3,Debian 9,Apache 2.4.38,PHP 7.3上使用。
因此,让我们开始吧。
1.禁用未使用的模块
第一种方法是禁止禁用您不使用的模块:
可以使用以下命令查看当前使用的模块列表:
apache2ctl -M
要禁用该模块,请使用以下命令:
a2dismod * *
因此,要启用该模块,请使用以下命令:
a2enmod * *
请注意,使用
a2dismod时 ,模块名称必须不带单词module本身。
例如,如果您在
apache2ctl -M 命令的输出中看到
proxy_module ,
则要禁用它,请使用命令
-a2dismod proxy最多的系统加载模块(根据个人经验)是:
- PHP,Ruby,Perl和其他用于各种脚本语言的模块
- SSL协议
- 改写
- Cgi
因此,在不需要这些模块的情况下,我建议禁用这些模块。
另外,在禁用模块后,我建议使用命令
-apache2ctl configtest ,该命令将检查所使用站点的配置,如果对它们而言任何禁用的模块都是必需的,则会产生错误。
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等,但是在本文中我尝试反映这些是对我最大的帮助,我希望它们对其他人有帮助。