温馨提示×

如何优化Ubuntu Apache

小樊
42
2026-08-27 13:44:08
栏目: 智能运维

优化 Ubuntu 上的 Apache 可以从 性能、安全、资源占用、并发能力 等方面入手。下面给你一套实用且可落地的优化方案,适合生产环境。


一、系统层面优化(基础)

1. 升级系统 & Apache

sudo apt update && sudo apt upgrade -y
sudo apt install apache2 -y

2. 调整系统资源限制

编辑:

sudo nano /etc/security/limits.conf

添加:

* soft nofile 65535
* hard nofile 65535

二、Apache 核心性能优化

1. 选择合适的 MPM(非常重要)

查看当前 MPM:

apache2ctl -M | grep mpm

✅ 推荐配置

场景 MPM
PHP / 动态网站 mpm_prefork
静态文件 / 高并发 mpm_event
高并发 + PHP-FPM mpm_event + php-fpm

切换到 mpm_event

sudo a2dismod mpm_prefork
sudo a2enmod mpm_event

2. MPM 参数优化(关键)

编辑:

sudo nano /etc/apache2/mods-available/mpm_event.conf

示例(2~4G 内存服务器):

<IfModule mpm_event_module>
    StartServers             2
    MinSpareThreads         25
    MaxSpareThreads         75
    ThreadLimit             64
    ThreadsPerChild         25
    MaxRequestWorkers      150
    MaxConnectionsPerChild   1000
</IfModule>

✅ 原则:

  • MaxRequestWorkers 不要超过内存承受范围
  • MaxConnectionsPerChild 防止内存泄漏

三、KeepAlive 优化

编辑:

sudo nano /etc/apache2/apache2.conf
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 3

✅ 高并发建议 KeepAliveTimeout 不要太大


四、关闭不必要的模块(减少内存)

查看已加载模块:

apache2ctl -M

禁用无用模块(示例):

sudo a2dismod autoindex cgi status

常用可关闭模块:

  • autoindex
  • cgid
  • status
  • userdir

五、启用缓存(大幅提升性能)

1. 启用缓存模块

sudo a2enmod cache cache_disk expires headers

2. 配置缓存

sudo nano /etc/apache2/sites-available/000-default.conf
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType text/css "access plus 7 days"
    ExpiresByType image/jpg "access plus 30 days"
    ExpiresByType image/png "access plus 30 days"
    ExpiresByType application/javascript "access plus 7 days"
</IfModule>

六、启用 Gzip 压缩

sudo a2enmod deflate

配置:

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/css application/javascript
</IfModule>

七、PHP 优化(如使用 PHP)

1. 使用 PHP-FPM(强烈推荐)

sudo apt install php-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.x-fpm

2. 调整 PHP-FPM

sudo nano /etc/php/8.x/fpm/pool.d/www.conf
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

八、安全优化(顺带)

sudo a2enmod headers
ServerTokens Prod
ServerSignature Off

防止暴露 Apache 版本。


九、日志优化(减少磁盘 IO)

sudo nano /etc/apache2/apache2.conf
LogLevel warn

或关闭访问日志(高并发):

CustomLog /dev/null combined

十、重启 & 测试

sudo apache2ctl configtest
sudo systemctl restart apache2

压力测试:

ab -n 1000 -c 50 http://your-domain/

十一、推荐组合(最佳实践)

高并发网站推荐方案

Ubuntu + Apache (mpm_event) + PHP-FPM + OPCache + Gzip + Cache

如果你愿意,可以告诉我:

  • 服务器内存(1G / 2G / 4G?)
  • 是否跑 PHP / WordPress
  • 访问量级别(日 PV)

我可以给你一套 完全定制的 Apache 配置

0