温馨提示×

Linux Apache配置技巧有哪些

小樊
47
2025-11-17 04:58:23
栏目: 智能运维

Linux Apache配置技巧精选

一 性能与并发调优

  • 启用持久连接与压缩缓存

    • 持久连接:KeepAlive On,MaxKeepAliveRequests 100,KeepAliveTimeout 5(减少握手开销,短超时避免占用连接)。
    • 压缩传输:启用 mod_deflate,压缩 text/html、text/plain、text/xml、text/css、application/javascript、application/json 等。
    • 浏览器缓存:启用 mod_expires,如 ExpiresByType text/css “access plus 30 days”,image/jpeg/png/gif “access plus 1 year”。
  • 选择合适 MPM 并合理调参

    • 查看与切换:httpd -V | grep -i mpm;在 /etc/httpd/conf.modules.d/00-mpm.conf 启用目标 MPM(如 mpm_event),注释其他。
    • 高并发优先 mpm_event;传统阻塞场景可用 prefork(与线程/异步程序更兼容)。
    • 示例(event,按内存与并发目标调整):StartServers 3;MinSpareThreads 75;MaxSpareThreads 250;ThreadsPerChild 25;MaxRequestWorkers 400;MaxConnectionsPerChild 1000;ServerLimit 16(并发上限 ≈ ServerLimit × ThreadsPerChild)。
  • 超时与连接控制

    • Timeout:默认 120 s,高并发可降至 60–15 s(视业务与客户端行为而定)。
    • Linux 内核与资源限制:提高文件描述符与网络队列,如 limits.conf 设置 * soft/hard nofile 65535;sysctl.conf 设置 net.core.somaxconn 65535、net.ipv4.tcp_max_syn_backlog 65535、net.ipv4.tcp_tw_reuse 1、net.ipv4.tcp_fin_timeout 30,执行 sysctl -p 生效。

二 安全与访问控制

  • 基础访问控制与目录权限
    • 目录示例:<Directory “/path”> Options Indexes FollowSymLinks;AllowOverride All;Require all granted (按需收紧为 Require ip 或 Require host)。
  • 防盗链
    • 基于 Referer 限制外链(示例思路):SetEnvIfNoCase Referer “^https?://(www.)?(example.com|cdn.example.com)” local_ref <FilesMatch “.(jpg|jpeg|png|gif|css|js)$”> Require env local_ref
  • 启用 HTTPS
    • 获取证书(如 Let’s Encrypt),在 VirtualHost 中开启 SSLEngine,配置 SSLCertificateFile/SSLCertificateKeyFile,必要时开启 HTTP/2(需 mod_http2)。

三 多站点与反向代理

  • 基于名称的虚拟主机(一台服务器承载多域名)
    • 示例(Debian/Ubuntu,/etc/apache2/sites-available/site1.com.conf): <VirtualHost *:80> ServerAdmin admin@site1.com ServerName site1.com ServerAlias www.site1.com DocumentRoot /var/www/site1.com/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
    • 启用站点:a2ensite site1.com.conf && systemctl reload apache2;本地测试可写入 /etc/hosts。
  • 反向代理与缓存加速
    • 将 Apache 作为反向代理/缓存层(示例): LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule cache_module modules/mod_cache.so LoadModule cache_disk_module modules/mod_cache_disk.so

      ProxyPass / http://127.0.0.1:3000/ ProxyPassReverse / http://127.0.0.1:3000/

      CacheEnable disk / CacheRoot /var/cache/apache2

四 运维与可观测性

  • 日志与日志级别
    • 按需精简与分级:CustomLog logs/access_log common;LogLevel warn(降低磁盘 I/O 与噪声,保留关键告警)。
  • 变更与语法安全
    • 配置语法检查:httpd -t;变更前备份;灰度与回滚预案;变更后观察监控与错误日志。
  • 压测与容量评估
    • 使用 ab、siege 等工具进行基线压测,结合监控(连接数、CPU、内存、I/O、队列)迭代 MPM 与内核参数。

五 快速检查清单

  • 已启用 mod_deflate、mod_expires、mod_headers(必要时 mod_http2)。
  • MPM 与参数匹配业务场景(event/prefork 选择、MaxRequestWorkers 与内存估算一致)。
  • KeepAlive、Timeout、文件描述符与 TCP 队列已按并发目标优化。
  • 虚拟主机与反向代理配置正确,目录权限与访问控制到位。
  • HTTPS 部署完成,证书链完整,HTTP/2 按需开启。
  • 日志级别与采样策略合理,具备压测与回滚方案。

0