性能优化apache2

许多人将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等,但是在本文中我尝试反映这些是对我最大的帮助,我希望它们对其他人有帮助。

Source: https://habr.com/ru/post/zh-CN444732/


All Articles