- Apache采用模块化的体系结构,它的大部分功能都被分割成相互独立的模块,这样的结构可以通过增加和删除模块就可以扩展和修改Apache提供的功能,另一方面,对于Apache 功能的理解也变得非常容易。
1. Apache的目录结构 (httpd2.0为例)
httpd源代码文件有2000个,包括180多个目录
httpd2.0
----server :此目录是整个Apache核心功能实现,包括请求处理、协议处理等,此目录下面还包括多线程处理模块(mpm),主要是用来实现多线程并发的。
----modules:包括Apache所有的模块,而且一个模块占用一个目录 mod_ssl mod_proxy mod_perl
----include:Apache必需的头文件,包括一些极其重要的头文件 http_main.h http_protocol.h http_request.h 等
----os :操作系统平台依赖文件
----srclib:Apache开发和运行需要的基础库,主要包括 apr_util apr 和 pcre
----support:用于辅助Apache的小工具 tools
----test:APR的测试函数
2. Apache 层次结构
Apache 可以分为5层,分别是 操作系统平台功能层,可移植运行库层(操作系统适配层),Apache核心功能层,Apache可选功能层和Apache第三方功能库
(1) 操作系统平台功能层:
Apache实质上还是运行在操作系统上面的应用程序,因此必须使用操作系统本身提供的底层功能,比如进程和线程、