apache优化技巧

APACHE的安装:


APACHE2.2.6是最新的版本,目前有2.0.x系列。2.2.x系列。目前现在是使用2.2.x版本中最高的2.2.6。如果使用2.0.x也一样。其实APACHE不需要追新,因为现在还有大型网站使用1.3.X版本。


安装就不说了。我们只是说下配置:




1、设置APACHE支持PHP5,采用模块的方式,将PHP做为APACHE的一个运行模块,这样好些。


找到APACHE安装目录下的 CONF文件夹下的httpd.conf文件。
找到有很多像下面这样的地方。
LoadModule userdir_module modules/mod_userdir.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule ssl_module modules/mod_ssl.so


然后在最后加上下面2段:
LoadModule php5_module c:/php/php5apache2_2.dll  


AddType application/x-compress .Z  
AddType application/x-gzip .gz .tgz  
AddType application/x-httpd-php .php 




第一段的意思是将PHP做为APACHE的模块,而指向的文件是 c:/php/php5apache2_2.dll 。再以前装IIS的时候我们指向的是php5isapi.dll。这是不同的。
第二段的最后一行的意思是,让APACHE服务器认为.php后缀的是一个WEB文档,而不是数据文档,这样好调用PHP解释器。
前面2行是加上是否允许GZIP压缩这些。






2、配置服务器端口


找到


Listen 80(如果你安装时候选择的8080后面就是8080)


这里你可以修改你APACHE服务的端口,注意这里使用了。,其他WEB服务器如IIS就不能使用。








3、制订网站根目录


找到:DocumentRoot  。。。。。。


把后面的修改成你自己的目录,注意  /  。必须和他的一样,比如我将WEB目录设置在 d:\web


那么我们应该设置为:DocumentRoot "c:/web"


注意  斜杠与WINDOWS下的习惯不一样。










另外因为APACHE2.2.6版本有个目录安全限制,我们现在需要取消他。


找到DocumentRoot下面的第一个<Directory /> .......   </Directory>将下面的一段该成这样的:


<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    allow from all
    Satisfy all
</Directory>


这样可以取消这个限制,要不然,你该了主目录,会提示403错误,访问会被拒绝。








4.伪静态:


Load Module rewrite_module modules/mod_rewrite.so




AllowOverride这个后面跟的 改成All




5.重写.htaccess代码:


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /


ErrorDocument 404 /404.html


RewriteRule ^index.html$ index.php


</IfModule>












6.优化设置






6.1开启Gzip




开启该设置前需要启用2个模块


LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so




然后在httpd.conf的最后加上如下代码




###gzip


DeflateCompressionLevel 3
AddOutputFilter DEFLATE html xml php js css
<Location />
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \\.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary 
</Location>


##gzip








6.2隐藏Apache敏感信息




在httpd.conf文件最后方加上如下代理即可


#################去版本信息#############################
ServerTokens Prod
ServerSignature Off
#################去版本信息#############################








6.3设置Apache工作进程






开启conf/exrtra/http-mpm.conf




在http-mpm.conf文件中的最后加上如下代码


<IfModule mpm_winnt_module>
    ThreadsPerChild    350
    ThreadLimit     350
    MaxRequestsPerChild    10000 
</IfModule>




ThreadLimit是占用系统线程数限制,最好加上,否则会产生内存溢出导致Apache当掉。
MaxRequestsPerChild我理解是请求的缓存数,太小了影响性能,占用cpu时间,太大了占用内存资源,想象一下你网站的文件个数,然后自己设定,只要不为0就可以,防止内存溢出
ThreadsPerChlid是apache的线程数,就是开了这么多的线程来等待响应客户端请求,需要根据apache-status实时的监控调节,大了会占用过多内存,小了会导致连接不上。而且应该同时修改httpd-default.php超时设置来配合。












开启conf/extra/httpd-default.conf


Timeout 15 (连接超时缺省为300,太大了,缩小会减少同时连接数,即上面占用的实际线程数)


KeepAlive On (开启可以提高性能,因为一个页面一般会有多个请求)


MaxKeepAliveRequests 50 (这个数目自己根据网页内容调节)


KeepAliveTimeout 5 (这个小于Timeout就行)










6.4设置并发量


下载mod_limitipconn.dll




需开启LoadModule status_module modules/mod_status.so


加入模块LoadModule limitipconn_module modules/mod_limitipconn.dll




在httpd.conf最后加上如下代码


ExtendedStatus On
<IfModule mod_limitipconn.c>
<Location /resource>
MaxConnPerIP 50
NoIPLimit image/*
</Location>
</IfModule>
里面/resource是制定限定IP的目录,然后MaxConnPerIP是限定每个IP的并发连接数,NoIPLimit image/* 是排除resource下不限定的目录








6.5防止CC攻击


下载mod_dosevasive22.dll到Apache安装目录下的modules目录(当然也可以是其他目录,需要自己修改路径


LoadModule dosevasive22_module modules/mod_dosevasive22.dll


在httpd.conf最后方加上如下代码




##############防止CC攻击,设置IP黑名单####################
<Ifmodule dosevasive22_module>
DOSHashTableSize 3097 
DOSPageCount 2 
DOSSiteCount 50 
DOSPageInterval 1 
DOSSiteInterval 1 
DOSBlockingPeriod 10 
</Ifmodule>
##############防止CC攻击,设置IP黑名单####################




其中DOSHashTableSize 3097 记录黑名单的尺寸
 
DOSPageCount 3 每个页面被判断为dos攻击的读取次数
 
DOSSiteCount 50 每个站点被判断为dos攻击的读取部件(object)的个数
 
DOSPageInterval 1 读取页面间隔秒
 
DOSSiteInterval 1 读取站点间隔秒
 
DOSBlockingPeriod 10 被封时间间隔秒




















  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值