FreeBSD下Apache2.0运行模型分析及性能调整

本文内容基本来自Apache2.0官方文档,并结合了作者的日常工作经验。事实上对于任何一项开源技术来说,官方文档都是最好的技术资料,个人觉得网上90%的技术文档都可以在官方的技术文档中找到。不过很多人都没有意识到这一点,我想这和其中的大多数都没有中文版本有关。如果你在学习某项技术时遇到了问题,不妨先去其主站看看最新的官方文档。让我们一起为开源努力吧。

一谈到Apache,相信大多数系统管理员使用的还是其稳定版1.3——虽然2.0系列的开发版早已由Alpha,Beta发展到了现在的GA(General Availability )版,不过大家潜意识里还是认为开发中的版本并不是可用于生产环境的稳定版本,尤其是1.3的API与2.0的不兼容而使得大量的模块必须要重写才能在2.0上用。坦白地说,这种担心并不是多余的,Apache1.3和2.0之间的内部变化实在是太大了(这一开发已经历了5年)。用Apache创始人Brian Behlendorf自己的话来说:“这个版本包括了数百个新的特性,所以这个产品可能应该具有3.1或者8i这样的产品编号,而不是2.0!”。

在Apache2.0中加入了很多的核心改进和新功能,如Unix线程、多协议支持、新的构建系统、更好的支持非Unix平台、IPv6支持、新的Apache API、过滤器、多语言错误响应、原生的Windows NT Unicode支持、更简单化的配置、以及升级了的正则表达式库等,当然还包括对许多模块的重要改进,同时也加入了一些新的模块。如此多的变化,会使得大多数Apache管理员在刚接触2.0时会不知所措,笔者也不例外。

不过现在的情况有了很大变化,Apache开发团队做了很多工作使得从1.3升级到2.0更加平滑,同时很多重要的模块也已经很好地支持2.0了,如PHP、FastCGI、Mod_perl、Mod_python等。在httpd.conf的指令配置语法上,目前的2.0版本(笔者写作时是2.0.46)和1.3版本的兼容性已做得相当好了(比如早期的2.0版本如果要使用PHP的话,一般是用过滤器,不过现在的PHP官方文档中已经使用1.3中的LoadModule语句做为加载PHP的推荐方式)。只要略微了解一下2.0的新特性,从1.3升级到2.0就是一件非常容易的事情了。毕竟使用Apache2.0是大势所趋,而且笔者个人感觉,Apache的开发团队已经把开发重心转移到2.0上(1.3自2002年10月发布了1.3.27后,至今没有新版本推出,而2.0却在与1.3.27同时发布2.0.43后在2003年1月发布了2.0.44,3月末发布了2.0.45,5月末发布了2.0.46,并包含了很多改进和修正)。

尽管Apache2.0在许多方面有了不小的进步,但相信最吸引系统管理员的还是性能上的改善。毫不夸张地说,MPM(Multi-Processing Modules,多道处理模块)的引入是Apache2.0最重要的变化。大家知道,Apache是基于模块化的设计,而Apache 2.0更扩展了模块化设计到web服务器的最基本功能。服务器装载了一种多道处理模块,它负责绑定本机网络端口,接受请求并调度子进程来处理请求。扩展模块化设计到这个层次有两个重要好处:

1. Apache可以更简洁有效地支持多种操作系统;

2. 服务器可以按站点的特殊需要进行自定制。

时间: 2024-12-04 12:28:04

FreeBSD下Apache2.0运行模型分析及性能调整的相关文章

.NET平台下几种SOCKET模型的简要性能供参考

参考|性能 这个内容在cnblogs中也讨论过很多次了,这两天大概看了一些资料,看到一些简单的性能指标拿出来和大家讨论一下. Socket + Threads/ThreadPool 大概性能:小于1500个连接 实现:Accept一个Socket,就交给一个线程去管理,比较笨,但也比较有效,因为是同步方式,控制起来很方便.高级点的,就是交给一个线程池去管理,线程池由系统自动托管,省去了开销线程的时间.一般小型项目,用这个完全足够,开发也简单.但要注意,如果若干Socket长时间占用线程池中的线程

redhat 9下配置APACHE2.0.50 +PHP5+MYSQL4.0.20+GD库

apache|mysql|php5 linux下配置APACHE2.0.50+PHP5.0.3+MYSQL4.0.20+GD库前些天,升级服务器的时候,因为GD库的原因.make不了PHP4.3.8 于是就一步步装了PHP5 其实,安装步骤和PHP4只差一点点而已如果你机器里原来装有了PHP或者APACHE的RPM或者低版本.请先删除首先,服务器GCC要有,不然什么都不能做.可以用gcc -v来查看是否安装了GCC,#gcc -vReading specs from /usr/lib/gcc-l

ASP.NET 2.0运行时简要分析

概述: 本文基于ASP.NET 2.0的源代码,对ASP.NET 2.0运行时进行了简要的分析, 希望能帮助你理解ASP.NET 2.0中请求处理过程及页面编译模型. 关键字: ASP.NET 2.0运行时,原理,请求处理,页面编译,ASP.NET 2.0 HTTP Runtime 主要类: System.Web.HttpRuntime System.Web.HttpApplicationFactory System.Web.HttpApplication System.Web.Compilat

Linux系统下使用XHProf和XHGui分析PHP运行性能_php技巧

什么是性能分析?性能分析是衡量应用程序在代码级别的相对性能.性能分析将捕捉的事件包括:CPU的使用,内存的使用,函数的调用时长和次数,以及调用图.性能分析的行为也会影响应用性能. 什么时候应该进行性能分析? 在考虑是否进行性能分析时,你首先要想:应用是否存在性能问题?如果有,你要进一步考虑:这个问题有多大? 如果你不这样做,将会陷入一个陷阱--过早优化,这可能会浪费你的时间. 为了评断应用是否存在性能问题,你应该确定性能目标.例如,100 个并发用户的响应时间小于 1s .然后,你需要进行基准测

WINXp,windows2000下配置apache2.0.52+php5.0.2+mysql4.0

一.使用软件: apache_2.0.52-win32-x86-no_ssl php-5.0.2-Win32 mysql-4.0.21-win phpMyAdmin-2.6.0 配置环境:Windows Xp sp2 二.具体步骤 注意事项:安装过程,任何目录和文件名都不要使用空格, 不要使用D:Program Files 而要使用D:ProgramFiles 1. apache_2.0.52-win32-x86-no_ssl apache服务器软件,我下载的是win版本,2.0系列的配置都是相

我在RedHat linux 6.2下安装Apache-2.0.44的过程

我是第一次哦...花费了我一个通宵,失败了四次,最后安装成功才发现原来是自己粗心大意,现炒现卖,刚装好Apache就上来把成功安装的过程写下来了...此文献给象我一样初初接触linux的超级大菜鸟,^_^我在安装redhat6.2时,ftp和http和数据库都不装,基本上只是装了XFree86.准备工作:在命令行下运行lynx下载apache-2.0.44.tar.gz#cd /usr/local/src#lynx http://www.apache.org/dist/httpd/httpd-2

Redhat9下用apache2.0实现个人主页空间

apache|个人主页 1.系统平台:redhat9.0 基本要求:有一个apache2.0的安装.并且包含了mod_userdir模块. 默认的安装包含该模块. ./configure --disable-all --enable-module=alias --enable-module=access --enable-module=auth --enable-module=log_config --enable-module=dir --enable-module=mime --enable

apache2.0.39 php4.2.3在windowsXP下模块方式搭建.

apache|window WindowsXP+Apache2.0.39+php-4.2.3-dev源文件下载: 1. http://www.apache.org/dist/httpd/binaries/win32/ 下面的 apache_2.0.39-win32-x86-no_ssl.msi 或者apache_2.0.39-win32-x86-no_ssl.exe (A full setup package (.exe) containing the Win9x/WinNT Microsoft

VS报错之混合模式程序集是针对“v1.1.4322”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。

原文 http://www.cnblogs.com/zcftech/archive/2013/03/22/2976385.html   看到一个kinect大牛编写的一个水果忍者的体感游戏版本,让我为自己一直以来只用现有的网页游戏来模拟kinect体感游戏控制感到惭愧,没办法,我还是菜鸟.学习一段后自己模仿星际大战这个游戏,自己写了一个模仿版(对这个游戏我想大家是不陌生的),但是当我开始添加有关kinect控制代码时,突然系统报错"混合模式程序集是针对"v1.1.4322"版