温馨提示×

如何优化ubuntu apache配置

小樊
38
2026-10-16 19:57:57
栏目: 智能运维

优化 Ubuntu 上的 Apache 配置可以从性能、安全、稳定性和可维护性几个方面入手。下面按「常用且安全」的方式给你一套实用清单。


一、基础优化(必做)

1. 选择合适的 MPM 模式

Apache 有几种多处理模块(MPM):

  • prefork:兼容性好,但占用内存高(适合老 PHP)
  • worker:线程模型,性能更好
  • event:最优(推荐,Ubuntu 默认)

查看当前 MPM:

apache2ctl -V | grep -i mpm

切换为 event(如未使用):

sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo systemctl restart apache2

2. 优化 MPM 配置

编辑:

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

示例(4GB 内存服务器):

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

根据内存调整 MaxRequestWorkers


二、性能优化

3. 开启 KeepAlive(但别太久)

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

4. 启用压缩(gzip)

sudo a2enmod deflate

在配置中加入:

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

5. 启用缓存(浏览器缓存)

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>

6. 禁用无用模块

查看已启用模块:

apache2ctl -M

禁用示例:

sudo a2dismod autoindex status

三、安全优化

7. 隐藏 Apache 版本

ServerTokens Prod
ServerSignature Off

8. 限制目录访问

<Directory /var/www/html>
    Options -Indexes
    AllowOverride All
</Directory>

9. 使用 HTTPS(Let’s Encrypt)

sudo apt install certbot python3-certbot-apache
sudo certbot --apache

开启 HTTP/2:

sudo a2enmod http2

四、日志与监控

10. 控制日志大小

LogLevel warn

使用 logrotate(Ubuntu 默认已配置)


11. 使用 Cache / 反向代理(高级)

  • mod_cache
  • 前端加 Nginx
  • PHP 使用 php-fpm

五、常用检查命令

sudo apache2ctl configtest
sudo systemctl status apache2
htop

六、推荐组合(实战)

  • Ubuntu 22.04+
  • Apache + event MPM
  • PHP-FPM
  • HTTPS + HTTP/2
  • gzip + expires

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

  • 服务器配置(CPU / 内存)
  • 用途(PHP / 静态 / WordPress)
  • 当前访问量

我可以给你针对性配置示例。

0 踩