httpd

简介

httpd是由apache软件基金会开发的一款著名的web服务器软件。由于其开放源代码,并且拥有跨平台、功能强大、安全稳定等特性,而被广泛使用。
httpd是以核心加模块组成的方式工作。httpd的模块分两种,一种叫作动态可装载模块(DSO),另一种叫作多道处理模块(MPM)。DSO动态可装模块每个模块对应httpd的某项功能,也就是我们广泛意义上理解的功能模块。但是,MPM多道处理模块和DSO不一样,它并不是指一种模块,它代表的是httpd的一种工作特性,常用的MPM有,prefork、worker、event。
由于开发httpd的组织叫作apache,因此httpd也被称作apache

httpd中prefork、worker、event比较

httpd是一个web服务器,基于http协议工作。httpd的工作原理用一句话描述你可以理解为,客户端经过TCP/IP的三次握手与服务器端建立连接后,向服务器端的httpd发起一次通话,httpd此时调用一个进程去响应工作,进程取得结果后httpd在结果上包装一个http响应首部,然后把结果返回给客户端,连接断开,通话结束。

工作特性prefork(默认)workerevent
工作特性主进程负责生成子进程,每个进程响应一个请求主进程负责生成子进程,每个子进程产生多个线程,一个线程响应一个请求主进程负责生成子进程,一个进程响应多个请求

httpd的三种MPM模式,prerork、worker、event,三种模式可以看出,event模式的工作效率是最高的,但效率高换来的结果是,只要一条进程的通信出现了故障,进程僵死,那么出现的结果将是,那条进程对应的下面多个客户端通信集体崩溃。从理论上看,prerork和worker比效,worker的效率要比prerork要高,但实际应用时,在linux操作系统中,httpd的prerork和worker是不分上下的,所以在选择httpd的MPM模块时,应结合自身的实际情况进行选择。

MPM模块

1、在httpd查中看MPM,可以使用httpd -l命令可以查看httpd当前加载的MPM模块。
2、在httpd2.2中修改/etc/sysconfig/httpd配置文件可以改变当前服务器所使用的模块。在编译安装httpd2.4时,构建MPM模块,通常有两种选择,一种是把MPM编译成静态模块,还有一种是把MPM编译成动态模块。如果把MPM编译成了静态模块,那么要改变MPM,只能通过重新编译安装httpd修改。如果在编译安装httpd时,把MPM编译成了动态模块,那么改变MPM,可以在/etc/httpd/httpd.conf配置文件中编辑LoadModule指令选择不同的MPM重新载入即可。

httpd2.2中prefork各参数说明

httpd2.2中worker各参数说明

httpd2.4中event参数说明

StartServers 默认进程数 MinSpareThreads 最小空闲线程数 MaxSpareThreads 最大空闲线程数 ThreadsPerChild 每个子进程可以生成的线程数 MaxRequestWorkers 最大线程数量 MaxConnectionsPerChild 子进程的最大连接数,当达到设置值以后,APACHE就会结束当前的子进程

httpd的MPM模块通常用来应对各种生产环境的情况,在生产环境中web服务器的访问量并不是一成不变的,所以有的时候我们可能需要修改相关参数来应对各种访问量,熟悉各个模块的特性及参数配置是很有必要的!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值