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 相关文章推荐
substr()函数中文版
Oct 09 PHP
MySQL GBK→UTF-8编码转换
May 24 PHP
PHP中date()日期函数有关参数整理
Jul 19 PHP
PHP 图片上传代码
Sep 13 PHP
写出高质量的PHP程序
Feb 04 PHP
php引用地址改变变量值的问题
Mar 23 PHP
php使用sql server验证连接数据库的方法
Dec 25 PHP
php获取百度收录、百度热词及百度快照的方法
Apr 02 PHP
php基于curl实现的股票信息查询类实例
Nov 11 PHP
PHP更安全的密码加密机制Bcrypt详解
Jun 18 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
Nov 21 PHP
php 中htmlentities导致中文无法查询问题
Sep 10 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实现ping
2006/10/09 PHP
基于PHP文件操作的详解
2013/06/05 PHP
PHP数据类型的总结分析
2013/06/13 PHP
php实现在服务器上创建目录的方法
2015/03/16 PHP
phpMyAdmin无法登陆的解决方法
2017/04/27 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
Firebug入门指南(Firefox浏览器)
2010/08/21 Javascript
jquery 动态创建元素的方式介绍及应用
2013/04/21 Javascript
javascript框架设计读书笔记之字符串的扩展和修复
2014/12/02 Javascript
深入理解JavaScript系列(46):代码复用模式(推荐篇)详解
2015/03/04 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
JS实现数字格式千分位相互转换方法
2016/08/01 Javascript
BootStrap3中模态对话框的使用
2017/01/06 Javascript
详解js类型判断
2018/05/22 Javascript
SVG实现时钟效果
2018/07/17 Javascript
原生js实现购物车功能
2020/09/23 Javascript
[52:20]DOTA2-DPC中国联赛正赛 SAG vs XGBO3 第一场 3月5日
2021/03/11 DOTA
Python数组定义方法
2016/04/13 Python
python 根据正则表达式提取指定的内容实例详解
2016/12/04 Python
python数据类型_字符串常用操作(详解)
2017/05/30 Python
Django项目开发中cookies和session的常用操作分析
2018/07/03 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
2018/08/02 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
2018/12/07 Python
对python列表里的字典元素去重方法详解
2019/01/21 Python
PyQt5 加载图片和文本文件的实例
2019/06/14 Python
在python 中split()使用多符号分割的例子
2019/07/15 Python
keras训练浅层卷积网络并保存和加载模型实例
2020/07/02 Python
Python+unittest+DDT实现数据驱动测试
2020/11/30 Python
Sephora丝芙兰印尼官方网站:购买化妆品和护肤品
2018/07/02 全球购物
来自Ocado的宠物商店:Fetch
2018/07/10 全球购物
四风查摆问题及整改措施
2014/10/10 职场文书
国际贸易实训总结
2015/08/03 职场文书
适合青年人白手起家的创业项目分享
2019/08/16 职场文书
MySQL表类型 存储引擎 的选择
2021/11/11 MySQL
微软Win11什么功能最惊艳? Windows11新功能特性汇总
2021/11/21 数码科技
python保存图片的四个常用方法
2022/02/28 Python