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
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
