基本信息
编辑推荐
目前国内市面上少有的全面介绍Apache体系结构与核心模块的专业图书。.
剥丝抽茧——剖析Apache系统架构与核心模块..
大巧不工——重新认识开源社区集体智慧的结晶...
内容简介
计算机书籍
本书是“Apache源代码全景分析”的第1卷。书中详细介绍了Apache的基础体系结构和核心模块的实现机制,包括配置文件、模块化结构、多任务并发,以及网络连接和请求读取,其中多任务并发体系结构是本书分析的重点,讨论了Prefork、Worker及WinNT三种MPM。本书还着重介绍了Apache 2.0新引入的过滤器,包括过滤器的使用、实现,以及其中的数据组织形式——存储段和存储段组,剖析了Apache中常用的过滤器。.
本书的目的是深入挖掘Apache运行背后的实现机制和模块开发的细节,适合Apache模块开发者、希望了解内部细节的Apache管理员、Web服务器开发者、大规模服务器开发者学习和阅读。...
作译者
专长
1.大规模服务器研究与实现,包括各种服务器和网络开发框架,比如Apache,Squid,ACE,Apache MINA等等)
2.C++ Boost库..
3.Linux/Unix相关的应用开发
著作
《Unix/Linux下的Curses库开发指南》...
目录
1.1 WWW概述 2
1.1.1 Internet概述 2
1.1.2 超文本的概念 3
1.1.3 WWW的历史 4
1.2 HTTP服务器 8
1.2.1 HTTP服务器简介 8
1.2.2 HTTP服务器功能 9
1.2.3 WWW文档 11
1.2.4 工作方式 12
1.3 APACHE功能 15
1.3.1 虚拟主机 16
1.3.2 内容协商 16
1.3.3 持续连接 17
1.3.4 缓存 18
1.3.5 访问控制和安全 20
1.3.6 动态内容生成 21
第2章 APACHE体系结构 23
2.1 APACHE目录 24
2.2 APACHE层次结构 26
前言
从Tim Berners-Lee 1991年编写的CERN HTTP服务器算起,Apache已经诞生了近20年的时间。这些年来,Apache已经成为目前最为流行的Web服务器,支撑着无数大小网站的运行。随着Apache技术的发展,关于Apache的图书纷纷问世。但是,这些书讨论的几乎都是如何对Apache进行管理和配置的,只有很少的图书对Apache模块的开发进行分析和讲解。而对Apache体系结构和内部运行机制的介绍一直是空白。
众所皆知,Apache良好的模块化架构设计已经成为经典的服务器架构——易于扩展、易于维护。几乎每一个程序员都可以从Apache的架构中吸取到丰富的营养。虽然Apache的代码非常优美,架构层次非常清晰,但是在缺乏资料的情况下,开发人员想在短时间内读懂Apache架构和内部细节并不是一件容易的事情。在陷入迷茫和一头雾水之后,他们可能就会选择放弃,从而与Apache的优美架构失之交臂。
本书写作的目的就是通过阐述Apache源代码,将Apache的整体架构和内部机制呈现给读者,让更多的人了解和熟悉Apache架构。本书的另一个目的就是希望阐述Apache模块开发中会遇到的各种问题。
本书适合谁
顾名思义,本书是一本深入分析Apache源代码的书籍。首先,本书最适合于那些想急切了解Apache源代码内幕的读者,他们能够从本书中了解到关于Apache内幕细节的方方面面,从指令运行、模块细节到挂钩处理、请求处理等。
其次,Apache模块开发者也是本书的读者。虽然本书并不是一本专门讲述如何开发模块的图书,但是对于模块开发者而言,他们可以通过本书了解到关于模块和模块开发的所有细节内容。本书并不仅限于告诉你如何照猫画虎地增加一个新的模块,而是告诉你为什么要这么做。书中对于模块的每一个细节的阐释都非常清晰,因此,虽然本书并不是一本直接讲述模块开发的图书,但是通过阅读本书,你完全可以掌握其模块开发。
须要强调的是本书并不是一本讨论Apache管理的图书。因此,如果Apache管理员想从本书中找到如何编译安装使用Apache、如何配置管理Apache是不可能的,这种书市场上已经多如牛毛。但是这并不意味着本书对Apache管理员来说没有任何的价值。对于Apache管理员来说,他们大部分时间是在对Apache配置文件进行处理,通过本书,管理员们可以了解到Apache配置文件及配置指令幕后运行的细节,不仅知其然而且知其所以然,在阅读了本书之后,你甚至可以自己扩展Apache的指令,对于高级管理员而言,通过源代码的分析,可以对Apache进行最优化调优。
如果你对Apache没有兴趣,但是你是一个服务器开发者,那么本书也会对你有相当的吸引力。本书以一百三十多页的篇幅来讨论Apache的多任务并发框架模块。各种MPM的介绍会有助于你的服务器开发。
如果你对Apache没有兴趣,而且也不是一个服务器开发者,只是一个普通的开发者,那么Apache的模块化思想也非常值得你借鉴。Apache的高度模块化是Apache体系结构中最为耀眼的特性,熟悉和掌握这种思想,有助于开发良好的软件体系架构。
不同的开发人员对本书的关注点可以用表0-1描述。
表0-1
开发角色 关注点
Apache管理员 配置文件、配置指令
模块开发人员 全书内容
服务器开发人员 MPM并发处理框架
普通开发者 模块化体系结构
你需要什么技术基础
尽管谁都可以阅读本书,但是,如果想深入理解书中分析的内容,你必须具备以下几个条件。
1. 熟悉C语言
序言
尽管近几年来涌现出不少以“高性能”为卖点的新的Web服务器软件,比如Lighttpd、Nginx等,吸引了不少用户注意力,不过Apache因其功能广泛,某些方面仍具有不可替代性,仍然是Web服务器技术领域的风向标。话说回来,“重剑无锋,大巧不工”,有的时候软件性能表现不佳,更多原因可能是用户对其了解不够、使用不当造成的,并非软件自身有多大缺陷。对Apache 来说,更是如此。因此,通过分析源代码了解Apache软件架构体系,熟知其本质,方能更有效地使用Apache Web服务器,使之发挥出最大效能。为网站节省资源,为企业节省资金,也能为用户提供更好的访问体验,好处多多。..
此外,随着互联网业务的复杂化,很多网站在使用Apache的过程中也遇到了新的挑战,如常常要在业务的驱动下对Apache进行扩展性的开发(例如扩展日志模块以便于更复杂的日志统计)。这时,源代码分析是绕不过去的一件事儿,尽管源代码获取是轻而易举之事,但Apache代码毕竟凝聚了开源软件界的群体智慧,要想高效分析也并非易事,相信这本书能让有此需求的读者少走弯路,剥丝抽茧,获得更多启发与借鉴。
说起源代码分析,其实几年前市面上出现过一些有关此类话题的图书,但基本上是在大段源代码加上几句注释了事,读者可能会有吃到注水猪肉的感觉。而读者对本书这一点大可放心,书中代码只是点到即止,相对环保多了。...
支付宝(中国网络技术有限公司)
数据架构师 冯大辉
http://dbanotes.net
2009年3月于杭州
媒体评论
——章文嵩博士,LVS项目创始人和开发者