![](http://m.sbmmt.com/img/upload/article/000/000/029/5dd8f076224fb475.jpg)
Apache的功能特性
1.高度模块化 ( 推荐学习:apache入门 )
Apache支持把更多的功能以模块化的形式存在,通过加载和卸载模块完成不同功能的增加和删除,类似于Linux内核的模块化,可以加载和卸载内核的驱动模块。构成了core+modules模型;
2.支持动态加载和卸载模块
就是类似热拔插一样的功能,可以实现不重启服务的情况加载和卸载模块并使其生效。
3.支持多路处理模块MPM
Apache可以有三种(处理)工作模式,分别为:
prefork---多进程I/O模型,一个进程处理一个请求,是Apache的默认工作模式
该工作模式下存在一个主进程和多个子进程,那些个子进程由主进程生成和回收。主进程负责生成套接字、管理子进程,但是不负责处理请求,主进程由root身份执行;
子进程才是真正负责处理请求的角色,一开始会有多个空闲子进程等待处理请求,一个子进程处理一个请求,子进程由apache用户执行。
worker----复用多进程I/O模型
该工作模式下,存在一个主进程,同样地主进程负责管理子进程,并不处理请求,主进程生成多个子进程,同时每个子进程生成多个线程,一个线程处理一个请求,这样假设子进程数为M,每个子进程的线程数为N,则此工作模式可以并发处理M*N个请求。该模式下占用内存小,多用于大型网站。
event-----事件驱动模型
event和worker工作类似,都是并发处理M*N个请求。但是event做出的改进是,每个子进程中对线程划分的更加详细,有管理线程和服务线程两种,为什么要这样设计呢。
我们知道HTTP1.1版本默认为持久连接keepalive,如果建立连接却没有发送请求,就会一直占用此连接的带宽直到规定时间才会释放,因此加入了管理进程,专门监视keepalive类型的服务线程,当发生真正的请求的时候,管理线程把请求转交给服务线程处理,处理完毕后管理线程会释放服务线程的资源。增加了带宽的利用率。
4.虚拟主机
有些网站的访问量低的可怜,这么低的访问量如果专门用一台服务器来搭建的话,实在是划不来,因此就想到了在一台服务器上搭建多个网站,多个网站共用一台服务器降低资源消耗,这样的功能就叫做虚拟主机功能。
一个服务器搭建多个网站,每个网站对应不同的域名,外部客户端想要访问的时候,DNS会将这些不同网站的域名解析到同一台服务器,服务器根据HTTP请求的首部行中的域名信息,将请求转至对应的目录资源。
小tips:虚拟主机和虚拟机的区别->虚拟主机是一台主机上边部署多个网站的功能,支撑这么多网站的主机运行的是同一个操作系统;而虚拟机是一个系统通过VMware、LVM等技术虚拟出来的多个主机,这些虚拟的主机可以运行不同的操作系统。
5.CGI通用网关接口
支持动态网页。这样说会很晦涩,先来说什么是网关,网关就是两个网段内的主机进行通信的交界口,同一网段内的主机通信时是不需要经过网关的,但是一旦不同网段的主机进行通信,就需要把数据先交给网关,让网关转交给另一个网段。
同理再来看CGI,web服务器只能发送静态页面,当服务器收到例如index.php的文件请求时,服务器总不能把index.php发送出去吧。
因为这是一个动态文件啊,此时CGI会把index.php处理成一种规定的数据格式,然后交给php解释器执行,随后再把执行后的数据经过CGI处理,最后把结果由服务端发送给客户端,这里的CGI就是起到了静态请求和动态请求的转换接口。
6.支持反向代理
7.可以实现负载均衡
8.支持路径别名
为了不让用户知道服务端资源的真正目录,可以对目录做一个别名,用户只需要知道这个别名即可,别名会自动跳转到真正的目录。
9.可以实现安全认证机制
以上就是Apache的功能特性有哪些的详细内容,更多请关注php中文网其它相关文章!