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的FTP学习(二)[转自奥索]
Oct 09 PHP
IIS下配置Php+Mysql+zend的图文教程
Dec 08 PHP
php 保留小数点
Apr 21 PHP
php中json_encode中文编码问题分析
Sep 13 PHP
PHP filter_var() 函数 Filter 函数
Apr 25 PHP
PHP字符串的编码问题的详细介绍
Apr 27 PHP
推荐10个提供免费PHP脚本下载的网站
Dec 31 PHP
php短址转换实现方法
Feb 25 PHP
PHP中substr函数字符串截取用法分析
Jan 07 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
Oct 08 PHP
PHP实现的猴王算法(猴子选大王)示例
Apr 30 PHP
php探针使用原理和技巧讲解
Sep 17 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删除文件夹及其文件夹下所有文件的函数代码
2013/01/23 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
2011/09/21 Javascript
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
2012/08/24 Javascript
jQuery遍历Table应用示例
2014/04/09 Javascript
实例分析javascript中的call()和apply()方法
2014/11/28 Javascript
AngularJS入门教程(零):引导程序
2014/12/06 Javascript
jQuery模仿单选按钮选中效果
2016/06/24 Javascript
JavaScript基于自定义函数判断变量类型的实现方法
2016/11/23 Javascript
EasyUI学习之Combobox下拉列表(1)
2016/12/29 Javascript
微信小程序自定义带价格显示日历效果
2018/12/29 Javascript
如何在JavaScript中创建具有多个空格的字符串?
2020/02/23 Javascript
Python判断文件或文件夹是否存在的三种方法
2017/07/27 Python
Django对数据库进行添加与更新的例子
2019/07/12 Python
python通过链接抓取网站详解
2019/11/20 Python
python中字符串的编码与解码详析
2020/12/03 Python
python time.strptime格式化实例详解
2021/02/03 Python
Ryderwear澳洲官网:澳大利亚高端健身训练装备品牌
2018/09/18 全球购物
size?丹麦官网:英国伦敦的球鞋精品店
2019/04/15 全球购物
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
美国木工工具和用品商店:Woodcraft
2019/10/30 全球购物
巴塞罗那观光通票:Barcelona Pass
2019/10/30 全球购物
施工安全承诺书
2014/05/22 职场文书
公司活动总结怎么写
2014/06/25 职场文书
郭明义电影观后感
2015/06/08 职场文书
总结会主持词
2015/07/02 职场文书
高中生物教学反思
2016/02/20 职场文书
《折线统计图》教学反思
2016/02/22 职场文书
《悲惨世界》:比天空更广阔的是人的心灵
2020/01/16 职场文书
Django程序的优化技巧
2021/04/29 Python
python实现三次密码验证的示例
2021/04/29 Python
python设置 matplotlib 正确显示中文的四种方式
2021/05/10 Python
各种货币符号快捷输入
2022/02/17 杂记
电脑关机速度很慢怎么办 提升电脑关机速度设置教程
2022/04/08 数码科技
Java Spring读取和存储详细操作
2022/08/05 Java/Android
go goth封装第三方认证库示例详解
2022/08/14 Golang