Apache性能优化几种实用小技巧

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
 
  本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon.com、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。

  Apache的诞生极富有戏剧性。当NCSA WWW服务器项目停顿后,那些使用NCSA WWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了Apache Group,后来这个团体在NCSA的基础上创建了Apache。

本文简要介绍了几个优化 Apache 的技巧,在实战中十分有用。

升级 Apache 到最新版本,新版本往往包含性能提升和安全更新。

在 httpd.conf 中设置 "HostNameLookups off" 能避免针对每个访问者的 DNS 域名的反向查询。

对于繁忙的网站,在 httpd.conf 中设置 "MaxClients 230" 或者更高。这项设置让更多的 httpd 进程同时响应请求,并避免了处理器排队的情况发生。

采用另外一台服务器处理图片文件。

缺保您的 Web 页面和 CGI 页面采用了浏览器缓冲技术。具体的文章可以参考本站:采用 mod_gzip 加速 Zope 和 Apache

保持您的 Apache 苗条,编译那些仅仅需要的模块,在编译之前,修改 src/Configuration 文件,在那些不需要的模块之前用 # 号注释掉。

如果不需要流量日志,那么把 httpd.conf 中的 TransferLog 指向到 /dev/null/

除非你确定使用 .htaccess 文件来控制一些目录的权限,否则设置 "AllowOverride None" ,这样就免去 Apache 在每个目录搜索 .htaccess 文件的劳役之苦。

不要让不需要的后台进程运行。

千万不要把页面或者日志文件写到网络磁盘上,例如 NFS。

不要让 Apache (httpd) 运行于 inetd 模式。

不要让 X Windows 运行在你的 Web 服务器上,用 Ctrl-Alt-Backspace 关闭 X 。

避免使用 SSI tag。

在 CGI 脚本中:
    文件 I/O:打开的文件数目越少越好。
    Shell 命令:采用全路径来调用 shell 命令。
    如果你的网站主要以 CGI 来驱动,那么请使用 mod_perl。
    在你的 Web 页面目录中,不要让文件数超过 1000 个,文件越多花费在定位上的时间也越多。

在 Web 服务器上的图片越少越好,保证每个图片都经由图片压缩器运行。

对你的网站做压力测试,建议采用 Apache 自带的 ab 命令来测试。

为了最好的性能,最好把网线拔掉,这样你的 Web 服务器就十分安全,而且负载马上降为 0,:-)

时间: 2024-08-31 17:24:16

Apache性能优化几种实用小技巧的相关文章

DB2数据库性能优化的几个小技巧

最简单而最见成效的--Bufferpool 缓冲池是内存中的一块存储区域,用于临时读入和更改数据库页(包含表行或索引项).缓冲池的用途是为了提高数据库系统的性能.从内存访问数据要比从磁盘访问数据快得多.因此,数据库管理器需要从磁盘读取或写入磁盘的次数越少,性能就越好.对一个或多个缓冲池进行配置之所以是调优的最重要方面,是因为连接至数据库的应用程序的大多数数据(不包括大对象和长字段数据)操作都在缓冲池中进行. 缺省情况下,应用程序使用缓冲池 IBMDEFAULTBP,它是在创建数据库时创建的.当

PPT扁平化设计的8个实用小技巧

PPT扁平化设计的8个实用小技巧   扁平化是目前的主流设计风格,本文总结了扁平化设计的8个小技巧,字体.图标.排版.配色等都有提及,教程深入浅出,非常适合新手,学会可以直接拿来作海报和PPT设计. 最近帮一个师兄做一个PPT,用了几乎每个人都听说过的扁平化风格.于是趁热打铁,找了一些扁平化的作品和文章看了,自己对扁平化做一个总结,希望对你ppt抑或海报设计有所帮助. 注:此处所谈的扁平化指的是一个大的概念,将后面衍生出来所谓的"似扁平化"也包含进来. Tip 1:关于高光.渐变和投影

Photoshop实用小技巧介绍

  Photoshop实用小技巧介绍 调整个别字符之间的距离 使用文字工具添加文字以后,如果你想调整个别字符之间的距离,可以将光标放在需要调整的两个字符之间,按住Alt键后,用左右方向键调整,非常灵活和方便. 快速改变对话框中显示的数值 要快速的改变在对话框中显示的数值,首先用鼠标点击那个数字,让光标处在对话框中,然后就可以用上下方向键来改变该数植了.如果在用方向键改变数值前先按下Shift键,那么数值的改变速度会加快(一般以10为步长). 临时切换到滴管工具 如果你现在处于以下的状态:毛笔,喷

VC小技巧汇总之5则实用小技巧_C 语言

本文搜集汇总VC的5则小技巧,非常实用,对于VC程序设计有很好的参考借鉴价值,详情如下: 1.如何获取程序所在的路径 也就是获取你这个程序本身所在的路径. 在应用程序类CxxApp的头文件中定义一个变量CString m_exePath;用来放置程序的路径名,在应用程序类CxxApp的InitInstance()函数中加入如下语句: TCHAR m_Path[MAX_PATH]; GetModuleFileName( NULL, m_Path, MAX_PATH ); //获取程序路径(包括程序

总结MySQL建表、查询优化的一些实用小技巧

本篇文章是对MySQL建表以及查询优化的一些实用小技巧进行了详细的分析介绍,需要的朋友参考下   MySQL建表阶段是非常重要的一个环节,表结构的好坏.优劣直接影响着后续的管理维护,赶在明天上班前分享总结个人MySQL建表.MySQL查询优化积累的一些实用小技巧. 技巧一.数据表冗余记录添加时间与更新时间 我们用到的很多数据表大多情况下都会有表记录的"添加时间 (add_time)",我建议大家再新增一个记录"更新时间(update_time)"字段,在我的工作里需

美图看看浏览照片两个实用小技巧

  每年的春节,不管是出门旅行还是回老家,最后总会抱着一堆旅行照片归来,浏览.整理是回味这个快乐春节的又一快事.然而,几百张大尺寸的照片,查看起来要等半天,以后查找起来也是麻烦,这却是一件烦心事.另外,下面我们就来帮你解决这个困扰的问题. 美图看看浏览照片两个实用小技巧 图片浏览不再慢半拍 旅游回来,迫不及待地想看看那些照片吧,用Windows默认查看器查看的话,不假死就是好事了,想要解决问题,除了升级内存,那就是升级看图软件了. 安装美图看看后就自动将它设置为默认看图软件了,首次用美图看看来图

JavaScript编程的10个实用小技巧_javascript技巧

在这篇文章中,我将列出10个Javascript实用小技巧,主要面向Javascript新手和中级开发者.希望每个读者都能至少从中学到一个有用的技巧. 1.变量转换 看起来很简单,但据我所看到的,使用构造函数,像Array()或者Number()来进行变量转换是常用的做法.始终使用原始数据类型(有时也称为字面量)来转换变量,这种没有任何额外的影响的做法反而效率更高. 复制代码 代码如下: var myVar   = "3.14159",str     = ""+ m

总结MySQL建表、查询优化的一些实用小技巧_Mysql

MySQL建表阶段是非常重要的一个环节,表结构的好坏.优劣直接影响着后续的管理维护,赶在明天上班前分享总结个人MySQL建表.MySQL查询优化积累的一些实用小技巧. 技巧一.数据表冗余记录添加时间与更新时间 我们用到的很多数据表大多情况下都会有表记录的"添加时间(add_time)",我建议大家再新增一个记录"更新时间(update_time)"字段,在我的工作里需要为市场部.运营部等建立各种报表,而很多报表里的数据都是需要到大记录表里去查询的,如果直接查询大表的

jQuery实用小技巧_输入框文字获取和失去焦点的简单实例_jquery

jQuery实用小技巧_输入框文字获取和失去焦点的简单实例 <input id="txt" class="text1" type="text" /> <script src="js/jquery-1.7.1.min.js"></script> <script type="text/javascript"> $(function () { $("inp