温馨提示×

Debian Apache怎样优化

小樊
47
2026-09-06 15:01:59
栏目: 智能运维

在 Debian 上优化 Apache(通常是 Apache2),可以从系统层面、Apache 配置、模块管理、缓存、安全与监控几个方面入手。下面给你一套实用、可落地的优化方案(适配 Debian 10/11/12)。


一、基础检查

apache2 -v
uname -a
free -h
lscpu

确认:

  • Apache 版本(2.4.x)
  • 内存大小(决定 MPM 参数)
  • CPU 核数(决定并发)

二、选择合适的 MPM(最重要)

Debian 默认可能是 mpm_prefork(兼容 PHP,但性能一般)

查看当前 MPM

apache2ctl -M | grep mpm

推荐方案

场景 MPM
PHP(mod_php) prefork
PHP-FPM / 静态 event ✅(推荐)
高并发 event

切换到 event(推荐)

sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo systemctl restart apache2

三、优化 MPM 参数

编辑:

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

示例(2GB–4GB 内存):

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

原则:

  • MaxRequestWorkers ≈ 内存 / 每进程内存
  • 静态资源多 → 提高线程数
  • 内存小 → 降低 MaxRequestWorkers

四、关闭不必要的模块

越少越快。

查看已启用模块

apache2ctl -M

常见可禁用

sudo a2dismod status
sudo a2dismod autoindex
sudo a2dismod negotiation
sudo a2dismod cgi

(生产环境通常不需要)


五、开启压缩(必须)

sudo a2enmod deflate

编辑:

sudo nano /etc/apache2/mods-enabled/deflate.conf

示例:

AddOutputFilterByType DEFLATE text/html text/css application/javascript

六、开启缓存(显著提升性能)

1️⃣ 浏览器缓存

sudo a2enmod expires
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpg "access plus 1 month"
    ExpiresByType text/css "access plus 1 week"
    ExpiresByType application/javascript "access plus 1 week"
</IfModule>

2️⃣ 文件缓存(可选)

sudo a2enmod cache cache_disk

七、KeepAlive 优化

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

说明:

  • 太高 → 占连接
  • 太低 → 频繁握手

八、PHP 优化(如使用 PHP)

推荐 PHP-FPM + Apache proxy_fcgi

sudo apt install php-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php-fpm

比 mod_php 更快、更稳。


九、安全与性能兼顾

sudo a2enmod headers
ServerTokens Prod
ServerSignature Off

十、系统层优化(Debian)

文件描述符

ulimit -n

如太小:

sudo nano /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535

TCP 优化

sudo nano /etc/sysctl.conf
net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
sudo sysctl -p

十一、监控与压测

状态页

sudo a2enmod status

访问:/server-status

压测

ab -n 1000 -c 100 http://your-site/

十二、推荐组合(生产级)

✅ Debian + Apache(event) + PHP-FPM
✅ deflate + expires + headers
✅ 禁用无用模块
✅ 合理 MPM 参数


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

  • 内存大小
  • 是否用 PHP / WordPress
  • 访问量级别

我可以直接帮你算一套精确参数配置。

0 踩