Apache2 + PHP 在Windows2000下不稳定解决方案

系统 1818 0

1  制作一个bat文件在计划任务里面定期(每天夜里)执行:然后删除旧的日志文件,避免文件过大
apache -k shutdown

move /Y access_log access_log.old
move /Y error_log error_log.old

apache -k start

2 [httpd.conf]
<IfModule mpm_winnt.c>
ThreadsPerChild 250
MaxRequestsPerChild  30 <- 这个可以为100,但最好不要为0
Win32DisableAcceptEx <-这个
</IfModule>

3 使用更详细日志捕捉死机时访问的页面

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
记录refer可以帮助确认发生问题的请求来自什么页面,以判断是否受到攻击

可以使用"%400,501{User-agent}i"  "%!200,304,302{Referer}i"  来捕捉特定需要的log

4 在计算机管理->性能中,启动性能日志和警报->计数器日志->System Overview。根据一段时间的监测的数据,在系统监视器里面查看,找到发生死机的异常时候,内存,CPU的极值的规律。然后在警报里面,如果超过,或接近某个极值,执行重起apache命令。

5 无论如何在你的程序里面加上缓存机制:无论是通过生成静态html页面或者设置meta expired为几分钟

6 在php.ini里面,将output_buffering=On 不要设置具体的数值

7 对于文件下载,使用以下的方法,而不要使用readfile

//readfile($file);
$fd = @fopen($file, rb);
if(!$fd) {
   print "Bad entry: $entry<br>";
   continue;
}else {
   flock($fd,LOCK_SH);
   $contents = fread($fd, $size);
}
fclose ($fd);

8 为了防止多线程下载,给Apache 加上mod_limitipconn

<IfModule mod_limitipconn.c>

    <Location /mp3>
 MaxConnPerIP 1
 # In this case, all MIME types other than audio/mpeg and video*
 # are exempt from the limit check
 OnlyIPLimit audio/mpeg video
    </Location>
</IfModule>



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=565080


Apache2 + PHP 在Windows2000下不稳定解决方案


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论