Apache 运行模式怎么配

阿晨酱_9231

阿晨酱_9231

2026-08-11

585人浏览

原创

apache运行模式由mpm决定,主流有prefork、worker、event三种:prefork适合mod_php等非线程安全场景,稳定但内存开销大;worker为多进程多线程模型,兼顾性能与兼容性;event基于事件驱动,专为高并发和长连接优化,是apache 2.4+推荐默认模式。

apache 运行模式怎么配

Apache 运行模式由 MPM(Multi-Processing Module) 决定,主流有三种:prefork、worker、event。配置本质是启用对应 MPM 模块并调整其参数,需结合操作系统、负载特征和所用模块(如 mod_php)综合选择。


一、确认当前运行模式

执行以下命令查看已加载的 MPM:

httpd -l        # CentOS/RHEL 系统
apache2 -l       # Ubuntu/Debian 系统

输出中若含 prefork.c,说明当前为 prefork 模式;含 worker.c 或 event.c 则分别为对应模式。

也可查编译参数:

httpd -V | grep -i mpm

二、选择合适模式再配置

✅ prefork(适合传统 PHP + mod_php 场景)

  • 适用场景:PHP 拓展未线程安全(如旧版 mod_php)、模块兼容性要求高、稳定性优先。
  • 特点:每个进程只处理 1 个请求,进程间完全隔离,内存占用高,不擅长高并发。
  • 关键配置(httpd-mpm.conf 或 mpm_prefork_module 块内):
<ifmodule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxRequestWorkers   150   # 替代旧版 MaxClients,决定最大并发连接数
    MaxConnectionsPerChild   0   # 0 表示子进程永不死(适合稳定环境)
</ifmodule>

⚠️ 注意:MaxRequestWorkers 是核心限制值。估算公式:
总可用内存 ÷ 单个 Apache 进程平均内存 ≈ 合理值(例如 2GB 内存 / 20MB ≈ 100)

Apache Superset Dashboard and SQL Exploration Skill
Apache Superset Dashboard and SQL Exploration Skill

Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。

下载

✅ worker(适合高并发、内存受限环境)

  • 适用场景:使用线程安全的 PHP(如 PHP-FPM + mod_proxy_fcgi)、支持多线程模块。
  • 特点:多进程+多线程,资源更省,但单个线程崩溃可能影响同进程其他线程。
  • 关键配置:
<ifmodule mpm_worker_module>
    StartServers          2
    MaxRequestWorkers   150
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadsPerChild      25   # 每个子进程启动 25 个线程
    MaxConnectionsPerChild   0
</ifmodule>

? MaxRequestWorkers = 子进程数 × ThreadsPerChild,实际并发能力取决于此乘积。


✅ event(Apache 2.4+ 推荐,默认模式)

  • 适用场景:现代部署(尤其搭配 PHP-FPM、反向代理)、长连接(KeepAlive)较多、追求吞吐与资源效率。
  • 特点:在 worker 基础上优化了 KeepAlive 连接管理——空闲连接交由专门线程处理,工作线程可释放去服务新请求。
  • 关键配置(与 worker 类似,但更高效):
<ifmodule mpm_event_module>
    StartServers          2
    MaxRequestWorkers   200
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadsPerChild      25
    MaxConnectionsPerChild   0
</ifmodule>

✅ event 要求启用 mod_proxy 和 mod_proxy_fcgi 才能发挥优势(如转发 PHP 请求给 FPM)。


三、启用指定 MPM 的方法

编译时指定(首次安装)

./configure --with-mpm=event \
             --enable-so \
             --enable-rewrite \
             ...
make && make install

运行时切换(Apache 2.4+ 支持动态加载)

确保 httpd.conf 中加载对应模块(通常默认已启用):

LoadModule mpm_event_module modules/mod_mpm_event.so
# 注释掉其他 mpm_*.so 行,只保留一个

? 修改后必须重启 Apache:

systemctl restart httpd    # RHEL/CentOS
systemctl restart apache2  # Ubuntu/Debian

四、验证与调优提示

  • 查看当前生效的 MPM:
    httpd -V | grep -i 'mpm\|thread'
  • 监控实际并发数:
    curl -s http://localhost/server-status?auto | grep 'BusyWorkers\|IdleWorkers'
  • 开启 mod_status 并配置访问权限才能看到上述状态页。
  • 生产环境务必关闭 ServerTokens 和 ServerSignature,避免暴露 MPM 类型等细节。

不复杂但容易忽略:MPM 配置生效依赖于模块是否真正被加载,且 MaxRequestWorkers 等值受系统 ulimit -n(文件描述符上限)制约,必要时需同步调高。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

apache

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

437

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

900

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2732

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

916

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

809

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

414

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2476

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4592

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

747

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Apache Maven 官方安装指南
Apache Maven 官方安装指南

共0课时 | 0人学习

Apache Maven 官方用户中心
Apache Maven 官方用户中心

共0课时 | 0人学习

Apache Subversion 官方手册
Apache Subversion 官方手册

共0课时 | 0人学习