经过了前面一段时间的探索,我们对Apache和MySql的性能调优有了个初步的认识,我本来以为问题到这里应该就解决了,但是运行了十几天后,还是出现了负载达到50+的情况。于是,网站又挂了。
分析access.log与之前并无不同,被盗链的请求还是很多,不过这些都被302重定向了啊,死活想不到办法,一度怀疑是不是因为302或者404的错误日志过多的引起的IO问题导致服务器资源紧张。
除此之外,还是有个现象引起了注意,每次挂掉的不是Apache,而是数据库。为什么盗链会引起数据库问题,这显然无法解释。
不绕圈子了,最后发现的问题,就是为了防盗链而特意写的Rewrite。原本的rewrite是这样的,对于盗链的资源,重定向到首页。
这看起来没有问题,可是瞬间请求数百次到首页,然后运行脚本,执行数据库查询……
还有一点,返回的是302,这就意味着搜索引擎和下载工具会认为资源是存在的,不会停止响应。
所以,最终的解决方案。重定向所有盗链的资源到一个静态LOGO,同时,设定返回Code为403.
整个世界清净了。
您可能有兴趣的文章:
- Linux WEB服务器性能调优 – 工具箱
- Windows下Apache Tomcat Jk 1.3 简明配置摘要
- Linux编译PHP问题整理
- Linux Web服务器性能调优 – Apache的工作模式及配置
- Apache性能调优

This work, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
After the day