温馨提示×

ubuntu apache2怎么优化

小樊
43
2026-09-08 04:33:24
栏目: 智能运维

下面从系统层、Apache 配置层、模块与缓存、PHP(如适用)、安全与监控几个方面,系统地讲一下 Ubuntu + Apache2 的优化方法,偏实战、可落地。


一、系统层优化(基础)

1. 使用合适的内核参数

编辑 /etc/sysctl.conf

net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
fs.file-max = 1000000

生效:

sysctl -p

2. 提高文件描述符限制

ulimit -n 65535

永久生效: /etc/security/limits.conf

* soft nofile 65535
* hard nofile 65535

二、Apache MPM 选择与调优(最关键)

1. 查看当前 MPM

apachectl -V | grep -i mpm

Ubuntu 常见:

  • prefork(兼容 PHP,慢)
  • worker
  • event(推荐)

2. 切换到 event MPM(推荐)

sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo systemctl restart apache2

如果是 PHP,需用 php-fpm 才能用 event


3. MPM event 推荐配置

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

<IfModule mpm_event_module>
    StartServers             4
    MinSpareThreads         25
    MaxSpareThreads         75
    ThreadLimit             64
    ThreadsPerChild         25
    MaxRequestWorkers       400
    MaxConnectionsPerChild  10000
</IfModule>

根据内存调整
每线程 ≈ 几 MB


三、KeepAlive 与超时优化

/etc/apache2/apache2.conf

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
Timeout 30

✅ 减少连接建立开销
❌ 不要设太大(容易占连接)


四、模块精简(非常重要)

1. 禁用不必要的模块

常见可禁用:

sudo a2dismod status
sudo a2dismod autoindex
sudo a2dismod cgi

查看已启用:

apachectl -M

五、启用缓存(性能提升明显)

1. 启用 mod_cache

sudo a2enmod cache
sudo a2enmod cache_disk

示例:

<IfModule mod_cache.c>
    CacheQuickHandler off
    CacheLock on
    CacheIgnoreHeaders Set-Cookie
</IfModule>

<IfModule mod_cache_disk.c>
    CacheRoot /var/cache/apache2/mod_cache_disk
    CacheEnable disk /
    CacheDirLevels 2
    CacheDirLength 1
</IfModule>

2. 启用 Gzip 压缩

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

3. 浏览器缓存(Expires)

sudo a2enmod expires
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpg "access plus 30 days"
    ExpiresByType text/css "access plus 7 days"
    ExpiresByType application/javascript "access plus 7 days"
</IfModule>

六、PHP 优化(如使用 PHP)

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

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

2. 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. 减少日志量

CustomLog ${APACHE_LOG_DIR}/access.log combined env=!dontlog
SetEnvIf Request_URI "\.(jpg|css|js|png)$" dontlog

2. 或用异步日志

sudo a2enmod logio

八、安全 & 稳定性

  • 禁用目录浏览
Options -Indexes
  • 隐藏版本
ServerTokens Prod
ServerSignature Off

九、监控与压测

1. 查看状态

sudo a2enmod status

访问:

http://your-server/server-status

2. 压测

ab -n 1000 -c 100 http://localhost/

十、常见推荐组合(生产环境)

Ubuntu + Apache2 (event) + PHP-FPM + OPCache + mod_cache + Gzip


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

  • 服务器配置(CPU / 内存)
  • 是否用 PHP / WordPress / Laravel
  • 访问量级别

我可以给你一套直接可用的优化配置模板

0