温馨提示×

debian apache2如何优化

小樊
38
2026-09-15 15:43:22
栏目: 智能运维

在 Debian 上优化 Apache2,通常从性能、安全、模块、系统层面几个方面入手。下面按实用优先级给你一套可落地的优化方案。


一、基础检查(先确认环境)

apache2 -v
php -v        # 如果用 PHP
free -h
nproc

二、MPM 模式选择与调优(最重要)

1. 查看当前 MPM

apache2ctl -M | grep mpm

常见三种:

  • prefork(兼容 PHP,慢)
  • worker(线程,中等)
  • event(推荐,高并发)

2. 切换到 event(推荐)

sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo systemctl restart apache2

3. 调整 MPM 参数

编辑:

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

示例(4 核 8G):

<IfModule mpm_event_module>
    StartServers             3
    MinSpareThreads         75
    MaxSpareThreads        250
    ThreadsPerChild         25
    MaxRequestWorkers      400
    MaxConnectionsPerChild 10000
</IfModule>

MaxRequestWorkers ≈ 内存 / 每进程内存


三、关闭不必要的模块(省内存)

sudo a2dismod autoindex status cgi reqtimeout
sudo systemctl restart apache2

常用必须保留:

  • rewrite
  • ssl
  • headers
  • deflate

四、开启压缩(明显提速)

sudo a2enmod deflate

编辑:

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

示例:

AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript

五、开启浏览器缓存

sudo a2enmod expires headers
<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>

六、KeepAlive 优化

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

七、PHP 优化(如适用)

使用 PHP-FPM(强烈推荐)

sudo apt install php-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php-fpm
sudo systemctl restart apache2

php-fpm 池配置:

/etc/php/*/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

八、系统层面优化

1. 文件描述符

ulimit -n

如太小:

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

2. TCP 参数

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

九、启用 HTTP/2(更快)

sudo a2enmod http2

虚拟主机中:

Protocols h2 http/1.1

十、日志与监控

  • 关闭不必要日志
CustomLog ${APACHE_LOG_DIR}/access.log combined
  • 使用:
apachetop
htop

十一、推荐组合(总结)

✅ Debian + Apache2 (event)
✅ PHP-FPM
✅ deflate + expires
✅ HTTP/2
✅ 最少模块


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

  • 服务器配置(CPU / 内存)
  • 是否用 PHP / WordPress / 反向代理
  • 并发量大概多少

我可以给你精确配置文件。

0 踩