windows中apache2配置性能优化以及测试小结[Windows安全]
本文“windows中apache2配置性能优化以及测试小结[Windows安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
1、优化目的:
公司中现有多个apache平台,此中网元管理系统、进级和注册受权系统、离线浏览系统和利用组所开辟的系统都是运行在专用的服务器中,他们都是以业务为主的系统,所拥有的硬件资源对比多,可以侧重优化apache的运行速度,以得当的资源换取更高的运行速度.
但是设备中运行的各个配置程序,他们是以性能为主的系统,所运行的环境就要相对卑劣,硬件资源限制非常多,不能供web程序随便利用,他们的优化方向应当是保证运行速度的底子上极力压低资源损耗.
受限于此,很多外挂式加快程序都无法利用了,比方memcache、eaccelerator等,利用这些工具的前提就是内存充足大,大概资源充足多, 普通是专用的apache服务器上才会用到,也就是我们的第一类系统中才可以利用的,在一个嵌入系统中利用其实是得不尝失的.下面将侧重研究两种情形都使 用的优化办法.
2、运行环境
无论什么时刻,apache所运行的硬件环境都是对性能影响最大的因素,即便不能对硬件举行进级,也最好给apache一个单独的主机免得遭到其他利用的干扰.但很明显,我们的配置页面程序无法满意这个要求.
各个硬件指标中,对性能影响最大的是内存,关于静态内容(图片、javascript文件、css文件等),它决意了apache可以缓存多少内容,它 缓存的内容越多,在硬盘上读取内容的机会就越少,而存取硬盘上的特定文件是一件很费时的操作,大内存可以极大提高静态站点的速度;对动态高负载站点来说, 每个恳求保存的时间更多一些,apache的mpm模块会为每个恳求派生出呼应的进程或线程辨别处理,而进程或线程的数目与内存的损耗近似成正比,因此增 大内存对提高动态站点的负载和运行速度也极其有利
其次是硬盘的速度,静态站点尤为突出,apache不断的在读取文件并发送给呼应的恳求,硬盘的读写是极端频繁的;动态站点也要不断的加载web程序 (php等),一个恳求乃至要读取十几个文件才能处理完成,因此尽大概的提高硬盘速度和质量对提高apache的性能是有主动意义的.
最后是cpu和网络,cpu影响的是web程序履行速度,网络影响流量大小.
影响性能的另一因素是操作系统,php程序在类unix环境中的履行速度仍旧比windows中要快.
3、apache普通配置参数
1、静态还是动态
利用apache的动态载入模块非常便利,因为在需求时模块才会被载入.固然有些性能开销,但同时有利于削减服务器对内存的需求.
静态载入固然一次性载入全部需求的模块,增添内存损耗.因此我们全部采取动态载入的办法.
2、hhostnamelookups off
域名查找:这增添了处理每个恳求的开销,首先,服务器会对dns系统做一个反向查询以找出客户系统的主机名,然后又举行正向查询看得到的主机名能否真实 指向客户的ip.大大都情形下,你可以简单的关闭这个功效,假如你常常处理服务器日记,这个工作完好可以在今后举行.你可以通过在设置文件中加入指导 hostnamelookups off来关闭这个功效.
3、options -followsymlinks
标记衔接:当翻开这个选项时,apache将查抄每个恳求中能否包含对标记衔接的引用,这将对恳求中包含的每个途径调用一次lstat()系统调用.除非你预备利用标记衔接,不然用 options -followsymlinks 来关掉它.
4、sethandler server-status
服务器状况信息,默许已经关闭.该模块固然这对测试与监控服务器很有效,但它也为服务器带来了额外的开销,你可以通过探求任何近似sethandler server-status的指导来关闭,假如大概,你可以在安装apache时移除这个模块.
5、options -indexes
关闭目录浏览
6、directoryindex index.php index.html
在可以更切确的时刻尽大概不要利用通配符之类的机动选项,删除不需求的选项,明确的指定设置文件列表,最常用的放在最前.
7、cgi模块
除非你有很好的来由不然就答应cgi的履行,将似有的cgi文件放到一个特定的目录并为之设定精确的权限,这避免了apache对每一个恳求都要判断一次要求的是一个静态文件还是一个动态文件.
8、写入日记
写入日记信息是一个很耗费时间的工作,apache保持日记文件的翻开状况以节俭翻开文件的时间,假如没有必要存储日记信息,你可以关闭这个选项以节俭出更多的处理器时间,只需求在设置文件中把日记那一行注释掉便可以关掉它.
假如必须保存日记,你可以关闭hostnamelookups选项(见上文)然后把日记文件拷备到另一台机械上做进一步解析.
9、allowoverride none
.htaccess文件可以极大的扩大apache的设置参数,而无需每次你改变计划都要编辑apache主设置文件,但对这个文件的利用也降低了服务器的性能.
假如利用这个文件,apache必须首先在当前目录中查找能否存在这个文件,假如存在就解析这个文件并在当前目录中利用文件中的设置.更坏的 是,apache不但要查看当前的目录,还要查看当前目录的全部上层目录能否包含htaccess文件以按照全部这些文件终究肯定设置.
假如你想最优化服务器的性能,你应当禁止利用htaccess文件,任何基本目录的设置都可以在主设置文件中举行,而主设置文件仅在服务器启动时解析一次.为了禁用htaccess文件,在任何节里加上指导allowoverride none.
10、timeout 5
timeout 设置 apache 等候一个衔接读写操作的时间长度,也就是衔接成立后,apache 等候客户端完成恳求发送的时间,大概是呼应开始之后,apache 写出数据到客户端衔接的时间长度.
无论关于哪类利用来说,300秒的缺省值都有些太长了,因为这就意味着,假如客户端发生了某种未知因素招致的迟滞的话,服务器的一个衔接和与之对应的所 有资源都要保持 300 秒,这个关于重载的服务器来说是在是有些太长,所以,我倡议将其设置得小一些,这个长度只要充足保证各种客户端的利用可以正常传送数据便可.这里需求考虑 的因素主要有各种客户端的衔接情况和服务器的繁忙程度.普通来说,我倡议设置为 3~5.
11、keepalive on
这个选项明确 httpd 进程对每个恳求的链接能否保持长链接.假如保持长链接,则从同一个客户端的持续两次恳求会利用同一个衔接,而不用反复发送恳求.
关于下载类的利用,因为衔接时间都对比长,因此这个值设置成 on 还是 off 关系不大,从节俭每一滴资源角度考虑,可以设置为 off.
关于网页类利用来说,假如你的静态页面上有一些图标、图片、和js、css等东西的话,并且假若有超越两个的资源的话,我倡议是设置为 on.
12、maxkeepaliverequests 100
最多保持多少个活动的长链接
13、 keepalivetimeout 5
衔接的保持时间,超越时间就回收
apache进程在利用内存时,是“渐长”的.也就是说,直到这个进程死掉,利用内存的数目是一向增长而不会削减的.这样的话,apache进程利用内存的多少,就决意于你的利用程序最大利用内存量了.
keepalivetimeout 这个参数决意了,在什么都不做之前,一个http进程可以等候多长时间?假想一下,假如keepalive设置为on,而 keepalivetimeout设置为一个对比大的数字,apache占用内存会很快的增长.这是因为,一个apache进程完成了一个任务(并到达了 一定的内存占用,想一下“渐进”情势),并不会即刻退出,而是等候一个keepalivetimeout时间.假定用户的链接恳求持续不断的到来,则堆集 起来的无用的apache进程就会相当多,直到timeout,这些进程才会被杀死.
但是,keepalive的确关于静态的文件,比方图象文件的传送是很有效的,因此,keepalive要设置为on,但是keepalvietimeout要设置的小些,比方5s
14、serversignature off
默许情形下,很多apache安装时会显示版本号及操作系统版本,乃至会显示服务器上安装的是什么样的apache模块.这些信息可认为黑客所用,并且黑客还可以从中得知你所配置的服务器上的很多设置都是默许状况.
所以,请加入以下两条:
serversignature off
servertokens prod
serversignature 呈目前apache所产生的像404页面、目录列表等页面的底部.servertokens目录被用来判断apache会在server http呼应包的头部填充什么信息.假如把servertokens设为prod,那么http呼应包头就会被设置成:server:apache
4、MPM模块
多处理方法(multi-processing module/mpm)他答应特定平台处理多个并发衔接
apache的mpm模块可运行在多种情势之下,此中beos、mpmt_os2辨别是beos和os/2上缺省的mpm, perchild主要计划目的是以差别的用户和组的身份来运行差别的子进程.这在运行多个需求cgi的虚拟主机时分外有效,会比1.3版中的suexec 机制做得更好.leader和threadpool都是基于worker的变体,还处于实行性阶段,某些情形下并不会按照预期假想的那样工作,所以 apache官方也并不举荐利用.因此,我们主要阐述prefork和worker这两种和性能关系最大的产等级mpm ( 有关别的的mpm具体阐明,请拜见apache官方文档:http://httpd.apache.org/docs-2.0/mod/).
1、prefork的工作原理及配置
prefork就是unix平台上缺省的mpm.它所采取的预派生子进程方法也是 apache 1.3中采取的情势.prefork本身并没有利用到线程,2.0版利用它是为了与1.3版保持兼容性;另一方面,prefork用单独的子进程来处理不 同的恳求,进程之间是彼此独立的,这也使其成为最安定的mpm之一.
假如是利用debian的apt安装的apache,利用"apache2ctl -l"来肯定当前利用的mpm,应当会看到prefork.c(假如看到worker.c阐明利用的是worker mpm,依此类推),在apache2.conf中可以找到这一段配置
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
prefork的工作原理是,掌握进程在最初成立"StartServers"个子进程后,为了满意"MinSpareServers"设置的需求成立一 个进程,等候一秒钟,持续成立两个,再等候一秒钟,持续成立四个……如此按指数级增添成立的进程数,最多到达每秒32个,直到满意 MinSpareServers设置的值为止.这就是预派生(prefork)的由来.这种情势可以没必要在恳求到来时再产生新的进程,从而减小了系统开销 以增添性能.&nbs
以上是“windows中apache2配置性能优化以及测试小结[Windows安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |