本人这几天一直在看apache相关的书籍,稍微说下apache的结构
本人的制图:
Apache一共有五层功能结构。
从底层到上依次为:
第一层:
名称:操作系统支持层
功能:操作系统可以提供底层功能,比如进程、线程、socket通信、文件操作等等,这些操作系统可以是unix的变种、MacOS、windows。
第二层:
名称:可移植运行库层(libApr)
功能:因为每种系统所提供的api差异相对较大,所以apache2.0开始,为了让各种系统使用完全相同的函数接口,特地形成一个新的项目,apache 可移植库层(Apache Portable Runtime ,简称Apr)
第三层:
名称:apache核心功能层
功能:核心功能层也分为两大块,
1)apache核心程序
功能:用于实现apache作为http服务器的基本功能,比如开启、停止http服务器,接受和处理http连接。
2)apache核心模块
功能:安装apache有几个模块是必须静态编译的,即mod_so、mod_core,mod_core用于处理配置文件的配置指令,而mod_so用于动态加载其他模块。另外MPM(多进程处理模块)有时候也会被作为核心模块。
第四层:
名称:可选择功能模块
功能:比如这些mod_ssl、mod_perl可选择加载的模块,就算不加载它们,apache照样可以运行。
第五层:
名称:apache模块中使用的第三方支持库
功能:是使用apache模块开发的第三方库,比如Open SSL。