`
957803796_1
  • 浏览: 127120 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

切换apache的prefork和worker模式

 
阅读更多

Apache HTTP服务器被设计为一个强大的、灵活的能够在多种平台以及不同环境下工作的服务器。
不同的平台和不同的环境经常产生不同的需求,或是为了达到同样的最佳效果而采用不同的方法。
Apache凭借它的模块化设计很好的适应了大量不同的环境。
这一设计使得网站管理员能够在编译时和运行时凭借载入不同的模块来决定服务器的不同附加功能。

Apache2.0将这种模块化的设计延伸到了web服务器的基础功能上。
这个版本带有多路处理模块(MPM)的选择以处理网络端口绑定、
接受请求并指派子进程来处理这些请求。
比如,需要更好伸缩性的可以选择象worker或event这样线程化的MPM,
而需要更好的稳定性和兼容性以适应一些旧的软件可以用prefork 。

在Redhat Linux的主要版本as4上,apache版本为httpd-2.0.5x,
默认为prefork模式,主要是考虑到稳定性的原因。
要切换到worker模式,则需要登录到linux上,进行如下操作:

进入/usr/sbin目录
cd /usr/sbin

将当前的prefork模式启动文件改名
mv httpd httpd.prefork

将worker模式的启动文件改名
mv httpd.worker httpd

修改配置文件vi /etc/httpd/conf/httpd.conf
找到里边的如下一段,可适当修改负载等参数:
<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>

重新启动服务
/etc/init.d/httpd restart

即可换成worker方式启动apache2

注意这里可能会遇到错误:

Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP. Pre-configuration failed!
解决方法是将/etc/httpd/conf.d/php.conf文件中的LoadModule开头的那行代码注释掉。
--------------------------

注意:处于稳定性和安全性考虑,不建议更换apache2的运行方式,使用系统默认prefork即可
另外很多php模块不能工作在worker模式下,例如redhat linux自带的php也不能支持线程安全
所以最好不要切换工作模式。
=========================================

# /etc/init.d/httpd stop
[root@web ~]# which apachectl
/usr/sbin/apachectl
[root@web ~]# which httpd
/usr/sbin/httpd
[root@web ~]# cd /usr/sbin/
[root@web ~]# mv httpd httpd.prefork
# mv httpd.worker httpd
# httpd -k start

分享到:
评论

相关推荐

    Apache的prefork模式和worker模式该户.docx

    **prefork 和 worker 模式的切换** 要切换 Apache 的 MPM,可以通过修改启动文件名和配置文件中的相关指令来完成。首先,重命名当前的 prefork 或 worker 启动文件,然后修改 `/etc/httpd/conf/extra/httpd-mpm.conf...

    深入理解apahce的工作模式perfork、worker

    本文将详细介绍Apache中的两种主要工作模式:Prefork MPM和Worker MPM,并对比它们的特点与适用场景。 #### Prefork MPM(预分叉多进程模型) **特点:** - **多进程单线程模型**:Prefork MPM通过创建多个子进程...

    Windows下64位Apache-2.4.6

    例如,对于单CPU系统,Prefork MPM可能是个好选择,而对于多核系统,Worker或Event MPM可能会更合适。 9. **故障排查** 如果遇到问题,查看错误日志(通常位于"logs"目录下的"error.log")会很有帮助。Apache也...

    Linux下安装Apache httpd.doc

    以`prefork`模式为例,启动Apache服务: ```bash service httpd start ``` 查看进程情况: ```bash ps -ef|grep httpd |grep -v grep ``` 可以看到一个主进程和多个空闲进程。 #### 八、总结 本文详细介绍了在Linux...

    apache相关配置

    Apache支持多种工作模式来适应不同场景的需求,其中主要的工作模式包括Prefork模式与Worker模式。 1. **Prefork模式**: - **特点**: - **多进程**:每个客户端请求都会创建一个新的进程来处理,这确保了服务器...

    write apache module

    1. **多线程与多进程模型**:根据Apache的运行模式(例如, prefork或worker模型),模块可能需要处理多线程或多进程环境下的并发问题。 2. **性能优化**:模块设计应考虑性能影响,避免阻塞I/O操作,合理使用内存...

    apache编译参数介绍

    - 说明:相比默认的Prefork模式,Worker模式更适用于高并发请求场景,能显著提升Apache处理能力。 11. **--disable-userdir** - 用途:禁用用户目录支持。 - 说明:关闭后将不允许用户通过自己的~用户名/路径...

    Apache HTTP Server Version 2.2 文档(2013.4.10最新)

    关于DNS和Apache 杂项文档 性能方面的提示 与Apache相关的标准 安全方面的提示 beos(MPM) Apache核心(Core)特性 描述指令的术语 指令索引 event(MPM) 模块索引 描述模块的术语 mod_actions mod_alias mod_asis mod_...

    lnamp:一键源码编译安装LNMP LAMP Tomcat

    RHEL6,RHEL7启用交换启用iptables修改SSH服务端口使用OpenSSL 1.1.1构建的Nginx / 1.16.1 Apache2.2.34工作模式为PreforkMPM(最终版本2.2.34已于2017年7月发布) Apache2.4工作模式为Event MPM(编译全部Prefork,...

    linux运维面试题.pdf

    - prefork模式包含`prefork.c`,worker模式包含`worker.c`。 10. **监控软件**: - Nagios:实时监控系统服务状态,提供多种报警方式,如短信、邮件等。 - Cacti:用于网络流量监控,绘制图表,跟踪网络性能。 ...

    CS编程的各种模型

    - **工作进程/工作线程池**:如Apache的prefork和worker模型,动态调整工作进程或线程数量,平衡资源利用和性能。 这些编程模型的选择取决于具体的应用场景和需求。例如,对于需要高度并发和低延迟的网络服务,多...

    Linux运维面试题.pdf

    - `prefork`模式:多进程,每个进程生成子进程处理请求,适合内存充足但CPU有限的情况,预创建进程减少响应时间。 - `worker`模式:多进程多线程,每个进程生成多个线程,适合CPU充足且并发请求高的环境。`httpd -...

    运维142问不看一定后悔

    39. **apache Worker与Prefork**:Worker采用多线程模型,Prefork为多进程模型。 40. **Tomcat默认端口**:8005、8080、8443。 41. **Tomcat工作模式**:BIO、NIO、NIO2、APR。 42. **请求流程**:接收到请求、...

    腾讯PHP开发工程师笔试试卷

    包括Prefork、Worker、Event等,配置文件调整MPM以适应PHP。 8. PHP在Apache的运行方式: 有mod_php、FastCGI、SSI等,FastCGI通过`php-fpm`服务运行。 9. PHP命令行运行: 配置时添加`--enable-cli`,命令行...

    2013年最新Linux系统运维面试题(附答案)

    - **worker**: 多进程和多线程混合模式。 - **查看模块**: - 使用命令`httpd -l`可以查看Apache当前支持的模块。 #### 九、监控软件介绍 **知识点11:监控软件及其特点** - **Nagios**: 实现手机短信、电子邮件...

    IT系统工程师面试题

    #### 问题6:Apache 2.x版本中的运行模式 - **prefork**:预加载子进程,适合低CPU密集型的应用。 - **worker**:支持多线程,适用于高并发场景。 #### 问题7:服务器管理 使用自动化工具如Ansible、Puppet进行...

Global site tag (gtag.js) - Google Analytics