Apache性能调节(摘自于Apache经典实例)
2009-10-30 14:10
218 查看
1、决定需要多少内存 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
在进程列表中找出Apache的实例,并决定运行Apache进程平均所需的内存容量然后将此数量与可同时服务的客户端的最大数目相乘。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
折腾 一 阵 ,也没能在linux下算出我的apache所需的内存数量。需要再接再 厉 。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2、 | 以ab来测试 Apache的性能 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
运行ab程序如下: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ab -n 1000 -c 10 http://xxxx/test.html | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
未在实际环 境中运行 测试 。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
模拟测试只能一定程度上反映服务器的性能。能够获得系统性能是否真的提升了,但不能反映真实的用户的真实行为。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3、调节保持连接的设定 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
启用KeepAlive On指令。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
使用KeepAlive可在单 一 连 接 时进 行多个 请 求。也就是持 续连 接。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MaxKeepAliveRequests指令在单一连接时间内可允许多少个保持连接的请求。当该 值 为0时,表示在单一连接时间允许不限数目的请求。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
KeepAliveTimeout指定在没有接受其他请求时,会持续开启特定连接的时间。此指令的最佳设定完全视网站特性而定。在 KeepAlive 过期前,用户 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
访问下一网页时会在同一连接中获得该文件。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4、取得网站活动的快照 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
想准确地知道服务器正在做什 么事。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
启用server-status处理器来取得子进程在运行的快照。启用 ExtendedStatus来取得更 详细的信息: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
<Location /server-status> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SetHandler server-status | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
</Location> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ExtendedStatus On | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
可在 URL http://servername/server-status上查看 结果 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
启用 mod_status 模块所提供的 server-status 处理器可以提供服务器活动快照。可获得信息:上次重启动时间、服务器已运行多久、该时间段内已经服务 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
的数据量、子进程及其作用的列表。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
上述结果可能包含一些不想被其他用户了解的信息,故需要设定只允许从xxx.xxx.xxx.xxx或其他设定的网络来访问,拒绝未获授权的因特网用户访问。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
做到特定用户访问,需要加入如下内容: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Order deny, allow | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Deny from all | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Allow from xxx.xxx.xxx.xxx | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
但需要加在何位置呢?猜想,这 里只 对 server-status起作用, 应 写在 <Location /server-status> </Location>之 间 。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5、避免DNS查 询 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
避免必须以DNS来 查 询客户端地址的情况。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
将HostNameLookups 设置为 Off | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HostNameLookups Off | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
确定所有Allowfrom 或 Deny from指令使用IP地址而非主机名称。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
理由:当Allow from 与 Deny from指令进行以主机名称为基准的访问控制时, Apache会采取另外的 预防措施以确保客户端不会送出假的主机名称。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
它会替客户端的IP地址进行DNS 查 询以获得主机名称,并与访问限制对比。为了确定DNS记录不是假造的,它会 查 询所获得的主机名称。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
问题:怎 样 的 设 置会使allow 与 deny from使用IP地址而不是主机名呢?反之呢?需要 验证 一下。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
问题:怎 样设 置假的主机名呢? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6、最佳化符号链接 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
什么 是符号 链 接?他又怎 么 影响系 统 性能了? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
书上说:为了启用最严格的安全防护,如果很少(甚至从不)使用符号链接,请使用Options SymLiksIfOwnerMatch或Options -FollowSymLinks。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
为了有最佳的性能,请使用Options FollowSymLinks。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7、降低.htaccess文件对性能的影响 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
只在必要的目录中启用AllowOverride,告诉Apache不要浪费时间在别的位置 查找 .htaccess文件 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AllowOverride None | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
然后在<Directory>区块启用必要的 .htaccess文件。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
因为Apache配置指令不仅应用到所设定目录,也包含所有子目录。因此必须检 查父目 录以及当前目录中的.htaccess文件。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
在.htaccess中出现的任何设定都可以出现在引用同一目录的 <Directory>区 块中。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
只在必要的特定目录中启用。例如: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/www/htdocs/user/leopold/的目录中启用 .htaccess文件, 则应该只让此目录使用 .htaccess | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
<Director /www/htdocs/users/leopold> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AllowOverride All | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
</Directory> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
注意点:在.htaccess文件中可使用的指令种 类会非常特殊,而且应该只使用真正需要的指令。即应该使用必要的特定指令,而非 All参数。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
尤其尽可能避免使用AllowOverride的Options参数,因为它可以让用户重新启动为了安全防护而停用的功能。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
问题:AllowOverride的Options参数是什 么 ?怎 么 他就“它可以 让 用 户 重新启 动为 了安全防 护 而停用的功能?” | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8、停用网页内容协商 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
网页内容协商会严重地降低性能。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
如果真的需要使用网页内容协商,请使用type-map处理器而非Multiviews选项: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Options -Multiviews | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AddHandler type-map var | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
当使用MultivViews时, 每次送出 请求时, Apache都需要取得目 录列表。所请求的资源会与目录列表对比,以 查看 该资源是否还有其他语言的版本。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
如果所请求的是index.html,则index.html有index.html.fr也会满足该请求。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
通过将信息放入.var文件并改为type-map处理器,可以不城 朵取得目 录列表,并大幅减少apache在决定传送给用户的正确版本时的必要工作量。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
例如:如果有index.html的英文、法文或其他文版本,可以编写名为 index.html.var的var文件,其中包含各 种版本的相 关信息。文件内容如下: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
URI: index.html.en | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Content-language:en | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Content-type:text/html | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
URI:index.html.fr | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Contents-language:en | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Contents-type:text/html | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
此文件必须和不同版本的资源(即index.html.en、index.html.fr及index.html.he.iso8859-8)放在同一目录中。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
相关文章推荐
- Apache经典实例200个
- Linux入职基础-3.6_ramdisk提升Apache性能实例(运维必懂)
- Apache JMeter web性能测试实例
- 【转】Apache JMeter web性能测试实例
- Linux下的Apache性能参数在线调节系统
- Apache 经典实例读书笔记1---- 安装
- Apache JMeter web性能测试实例
- Apache JMeter web性能测试实例
- Delphi经典实例5------变体类型性能测试
- apache实例配置经典 笔记
- log4j的性能瓶颈定位与性能优化(org.apache.log4j.spi.RootLogger)
- apache性能优化之启用gzip压缩
- IP地址划分的经典方法及实例
- Java经典实例:使用ChoiceFormat来格式化复数
- Apache自带的性能测试工具ab的使用
- OpenCL性能优化实例研究系列2:避免Local Memory Bank Conflicts的两个简单方法
- Java反射经典实例
- js中的ajax经典实例
- 委托的经典用法-计算器实例-来自王涛《你必须知道的.NET》
- mysql经纬度查询并且计算2KM范围内附近用户的sql查询性能优化实例教程