Apache 和 Tomcat 简述(2)

来源:互联网 发布:零基础学c语言看什么书 编辑:程序博客网 时间:2024/05/16 13:51

这一篇文章我们简单说一下Apache是如何工作的。

    Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。多进程方式的优势就在于稳定性,因为一个进程退出的时候,操作系统会回收其占用的资源,从而使它不会留下任何垃圾。即便程序中出现错误,由于进程是相互隔离的,那么这个错误不会积累起来,而是随着这个进程的退出而得到清除。

    ApacheHTTP服务器由一个相对较小的内核及一些模块组成,如下图所示。模块可以静态的编译到服务器中,但是通常都把模块放在/Modules/目录或者/libexec/目录下面,服务器运行时这些模块被动态加载。另外,Apache服务器依赖底层的可移植运行时库(Apache Portable RuntimeAPR)。可移植运行时库提供跨平台的操作系统抽象层和功能函数,为上层模块提供统一的接口,这样模块可以避免受到不可移植的操作系统调用的影响。多处理模块(Multi-Processing ModuleMPM)是一个特殊的功能模块,用来根据底层的操作系统来优化Apache。多处理模块停是唯一直接访问操作系统的模块,其他模块可以通过可移植运行时库来访问操作系统。

        Apache 和 Tomcat 简述(2) - Amos飒 - Amos的博客

    Web服务器最简单的形式就是一个程序,它侦听HTTP请求,在收到一个HTTP请求之后做出一个回复。在Apache中,这个工作主要由内容生成器负责,它是Web服务器的核心。确切地说内容生成器必须处理每一个HTTP请求。一个处理函数可以通过在httpd.conf文件中使用SetHandlerAddHandler指令进行配置。通常都是通过定义一个被处理函数所引用的函数,这样任何一个模块都可以注册内容生成器。在没有任何模块指定特殊生成器时,使用默认的生成器,它只是简单地返回一个直接将请求映射到文件系统上所得到的文件。实现内容生成器的模块有时被称作“内容生成器”模块或者“处理函数”模块。

 

参考《Apache模块开发指南》| 百度百科 |  http://apache.jz123.cn/