您的位置:首页 > 运维架构 > Apache

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)放在同一目录中。
                  
                                                             
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: