PHP如何解决网站大流量与高并发的问题


Posted in PHP onJune 25, 2011

首先,确认服务器硬件是否足够支持当前的流量。

普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大,
那么必须首先配置一台更高性能的专用服务器才能解决问题

,否则怎么优化都不可能彻底解决性能问题。

其次,优化数据库访问。

前台实现完全的静态化当然最好,可以完全不用访问数据库,不过对于频繁更新的网站,
静态化往往不能满足某些功能。

缓存技术就是另一个解决方案,就是将动态数据存储到缓存文件中,动态网页直接调用
这些文件,而不必再访问数据库,WordPress和Z-Blog都大量使用这种缓存技术。我
自己也写过一个Z-Blog的计数器插件,也是基于这样的原理。

如果确实无法避免对数据库的访问,那么可以尝试优化数据库的查询SQL.避免使用
Select * from这样的语句,每次查询只返回自己需要的结果,避免短时间内的大
量SQL查询。

第三,禁止外部的盗链。

外部网站的图片或者文件盗链往往会带来大量的负载压力,因此应该严格限制外部对
于自身的图片或者文件盗链,好在目前可以简单地通过refer来控制盗链,Apache自
己就可以通过配置来禁止盗链,IIS也有一些第三方的ISAPI可以实现同样的功能。当
然,伪造refer也可以通过代码来实现盗链,不过目前蓄意伪造refer盗链的还不多,
可以先不去考虑,或者使用非技术手段来解决,比如在图片上增加水印。

第四,控制大文件的下载。

大文件的下载会占用很大的流量,并且对于非SCSI硬盘来说,大量文件下载会消耗
CPU,使得网站响应能力下降。因此,尽量不要提供超过2M的大文件下载,如果需要
提供,建议将大文件放在另外一台服务器上。

第五,使用不同主机分流主要流量

将文件放在不同的主机上,提供不同的镜像供用户下载。比如如果觉得RSS文件占用
流量大,那么使用FeedBurner或者FeedSky等服务将RSS输出放在其他主机上,这
样别人访问的流量压力就大多集中在FeedBurner的主机上,RSS就不占用太多资源了。

第六,使用流量分析统计软件。

在网站上安装一个流量分析统计软件,可以即时知道哪些地方耗费了大量流量,哪些页
面需要再进行优化,因此,解决流量问题还需要进行精确的统计分析才可以。我推荐使
用的流量分析统计软件是Google Analytics(Google分析)。我使用过程中感觉其
效果非常不错,稍后我将详细介绍一下Google Analytics的一些使用常识和技巧。

PHP 相关文章推荐
php header示例代码(推荐)
Sep 08 PHP
PHP中copy on write写时复制机制介绍
May 13 PHP
使用ob系列函数实现PHP网站页面静态化
Aug 13 PHP
php中spl_autoload详解
Oct 17 PHP
PHP集成百度Ueditor 1.4.3
Nov 23 PHP
PHP程序中使用adodb连接不同数据库的代码实例
Dec 19 PHP
php实现图片上传、剪切功能
May 07 PHP
Thinkphp微信公众号支付接口
Aug 04 PHP
php安装扩展mysqli的实现步骤及报错解决办法
Sep 23 PHP
微信公众号开发之获取位置信息php代码
Jun 13 PHP
PHP pthreads v3使用中的一些坑和注意点分析
Feb 21 PHP
php变量与字符串的增删改查操作示例
May 07 PHP
session在PHP大型web应用中的使用
Jun 25 #PHP
php URL跳转代码 减少外链
Jun 25 #PHP
php session安全问题分析
Jun 24 #PHP
使用PHP实现二分查找算法代码分享
Jun 24 #PHP
PHP求最大子序列和的算法实现
Jun 24 #PHP
php中转义mysql语句的实现代码
Jun 24 #PHP
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
Jun 24 #PHP
You might like
PHP简单获取多个checkbox值的方法
2016/06/13 PHP
PHP调用微博接口实现微博登录的方法示例
2018/09/22 PHP
PHP超低内存遍历目录文件和读取超大文件的方法
2019/05/01 PHP
WordPress伪静态规则设置代码实例
2020/12/10 PHP
一个不错的用JavaScript实现的UBB编码函数
2007/03/09 Javascript
什么是json和jsonp,jQuery json实例详详细说明
2012/12/11 Javascript
node.js下when.js 的异步编程实践
2014/12/03 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
2015/05/25 Javascript
javascript文本模板用法实例
2015/07/31 Javascript
WebPack基础知识详解
2017/01/16 Javascript
Angularjs修改密码的实例代码
2017/05/26 Javascript
jQuery实现上传图片前预览效果功能
2017/08/03 jQuery
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
2019/09/02 Javascript
jQuery实现鼠标拖动图片功能
2021/03/04 jQuery
python函数参数*args**kwargs用法实例
2013/12/04 Python
Python CSV模块使用实例
2015/04/09 Python
PyChar学习教程之自定义文件与代码模板详解
2017/07/17 Python
对Python3+gdal 读取tiff格式数据的实例讲解
2018/12/04 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
2018/12/14 Python
pytorch多进程加速及代码优化方法
2019/08/19 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
Python如何实现在字符串里嵌入双引号或者单引号
2020/03/02 Python
python matplotlib 绘图 和 dpi对应关系详解
2020/03/14 Python
详解css3使用transform出现字体模糊的解决办法
2020/10/16 HTML / CSS
印度在线购买电子产品网站:Croma
2020/01/02 全球购物
党的群众路线教育实践活动公开承诺书
2014/03/28 职场文书
就业协议书的作用
2014/04/11 职场文书
《桃林那间小木屋》教学反思
2014/05/01 职场文书
政府绩效管理实施方案
2014/05/04 职场文书
趣味运动会策划方案
2014/06/02 职场文书
作风建设年度心得体会
2014/10/29 职场文书
优秀班主任材料
2014/12/16 职场文书
毕业设计指导教师评语
2014/12/30 职场文书
班主任工作实习计划
2015/01/16 职场文书
骆驼祥子读书笔记
2015/06/26 职场文书