apache模块化体系结构简析

apache模块化体系结构简析

ID:2015717

大小:427.25 KB

页数:12页

时间:2017-11-14

apache模块化体系结构简析_第1页
apache模块化体系结构简析_第2页
apache模块化体系结构简析_第3页
apache模块化体系结构简析_第4页
apache模块化体系结构简析_第5页
资源描述:

《apache模块化体系结构简析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、apache模块化体系结构简析目录APACHE的体系结构概述1APACHE核心功能层3APACHE核心组件3APACHE核心处理框架4APACHE可选功能层(模块)4挂钩(HOOK)5预定义标准挂钩5挂钩使用5挂钩声明5挂钩数组声明6挂钩结构6挂钩注册7挂钩使用8APACHE2.0系列的模块结构8模块与核心的交互10APACHE的体系结构概述APACHE采用了分层与模块化的体系结构,如图1所示。图1Apache分层与模块化体系结构加上操作系统层,整个Apache可以被分隔为五层,各层次的功能如下:(1)操作系统支持层,操作系统本身提供的底

2、层功能,比如进程和线程、进程和线程间的通信、网络套接字通信、文件操作等。(2)可移植运行库层,不同的操作系统提供的底层API存在着很大的差异。对于Apache设计者而言,除了考虑WWW和服务器功能的实现之外,还必须考虑不同操作系统的API细节问题。显然,合理的做法就是将不同操作系统的底层细节封装起来形成操作系统API的适配并将其隐藏起来。从Apache2.0开始,Apache就将专门封装不同操作系统API的任务独立出来形成一个新的项目APR,全称为Apache可移植运行库(ApachePortableRuntime,APR)。APR的任务

3、就是屏蔽底层的操作系统API细节,对于所有的操作系统,提供一个完全相同的函数接口。这样,Apache开发者就不必顾虑操作系统细节,而只要开发上层功能即可。比如对于进程创建,如图2所示。图2进程创建不同的操作系统提供的创建进程的API是不同的,Unix下通用的是fork(),Windows下则是CreateProcess(),OS/2、Netware及BeOS中的API也迥然不同。APR将所有的创建细节封装起来,提供了统一的对外接口apr_proc_create()。这样,APR的使用者如果要创建进程,则只须调用apr_proc_creat

4、e(),不管它将要运行于哪个操作系统平台。APR的独立带来的另一个潜在的益处就是它将最终形成一个独立的可移植运行库。因此,实际上任何应用程序如果要考虑跨平台,都可以使用它作为底层的支持。(3)核心功能层,包括两大部分:Apache核心程序和Apache核心模块。Apache的核心程序主要用于实现Apache作为HTTP服务器的基本功能,这些基本功能包括:启动和停止Apache,处理配置文件(config.c),接受和处理HTTP连接,读取HTTP请求并对该请求进行处理,处理HTTP协议。核心模块,Apache中大部分模块都是可选择的,这意

5、味着对于Apache而言是可有可无的。这些模块的缺失至多影响Apache功能的完整性,并不影响运行,比如mod_ssl、mod_alias等。但是有两个模块则是必需的,即mod_core和mod_so。前者负责处理配置文件中的大部分配置指令,并根据这些指令运行Apache,而后者则负责动态加载其余的模块,缺少了该模块,其余的模块就无法使用。这两个模块都必须静态编译。对于Apache而言,另外一个重要的模块就是MPM,即多进程处理模块。尽管MPM也是属于可选择的,但是它通常负责处理Apache中的并发模型,或者是Prefork,或者是线程池

6、(ThreadPool),或者是Worker模型等。大多数情况下,它们总是会被加载,因此我们也将其视为核心的模块。Apache核心(第三层)主要有以下两个作用。基本的HTTP服务功能,Apache核心必须提供最基本的资源处理,或者通过文件描述符,或者通过内存段等来提供;维护多进程运行模型;在配置好的虚拟主机上侦听TCP/IP套接字;将接收到的客户端请求传递给特定的处理进程,处理HTTP协议状态,提供基本的读入和写入缓冲区等。另外,核心部分还提供一些通用的功能,比如URL及MIME头部解析,DSO模块加载等。ApacheModuleAPI,

7、Apache最基本的核心功能由Apache核心完成,除此之外,核心无法提供的功能则全部由模块提供。为了允许这些模块能够完全控制Apache的处理,Apache核心必须提供对应的API。在Apache中,这些API是指每个模块中包含一系列的函数(核心在处理HTTP请求的时候用来将消息传递给模块),以及一系列的以"apr"开始的函数。(4)可选功能层,可选功能层通常指Apache模块。按需载入,比如,如果需要Apache服务器支持安全套接字层(SecureSocketLayer,SSL),那么毫无疑问,我们必须将mod_ssl模块加载到核心中

8、。目前,Apache中的模块很多,Apache能够支持的完整的注册过的模块信息可以在http://modules.apache.org上查看。(5)第三方支持库,在Apache的一些模块中会使

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。