php 网站如何应对大流量与高并发呢?

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

普通的P4服务器一般最多能支持每天10万地理IP,如果访问量比这个还要大,则请配置一台更高性能的专用服务器。

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

其次,优化数据库访问,

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

缓存技术,将动态数据存储到缓存文件中,动态网页直接调用这些文件,而不必在访问数据库。

WordPress和Z-Blog都大量使用这种缓存技术。

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

第三 禁止外部的盗链

外部网站的图片或者文件盗链往往会带来大量的负载压力,因此应该严格限制外部对于自身的图片或者文件盗链,好在目前可以简单的通过refer 来控制盗链,Apache自己可以通过配置来禁止盗链,IIS也有一些第三方的ISAPI可以实现同样的功能。

为防止伪造refe代码方式的盗链,可以在图片上增加水印。

第四  控制大文件的下载

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

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

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

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

在网站上安装一个流量分析统计软件,可以即时知道那些地方耗费了大量流量,那些页面需要再进行优化,因此,解决流量问题还需要进行精确的统计分析才可以,我推荐使用的流量分析统计软件是 Google Analytics(Google分析)

优化经验:

首先 学会用explain 语句分析select语句, 优化索引,表结构,其次,合理运动memcache等缓存

降低 mysql 的负载

最后 尽量用 facebook的hiphop-php编译下PHP编译,以提高程序效率。

最新文章

  1. Linux硬件IO的优化简介
  2. 从N个元素的集合中随机取m个元素的算法实现
  3. Java连接Oracle数据库开发银行管理系统【三、实现篇】
  4. MySQL 里面的Where 和Having和Count 和distinct和Group By对比
  5. 二、Android NDK编程预备之Java jni入门Hello World
  6. 1709. Penguin-Avia(并查集)
  7. Android加速度传感器实现“摇一摇”,带手机振动
  8. Android Studio SDK Manager无法正常下载如何设置
  9. winform 加密 解密 分类: WinForm 2014-05-16 15:05 400人阅读 评论(0) 收藏
  10. JVM结构、GC工作机制详解
  11. [河南省ACM省赛-第三届] 素数 (nyoj 169)
  12. Windows下JNI的使用教程
  13. V4l2的结构体 --- ioctl【转】
  14. servlet的运行机制,转发和重定向
  15. sqlite3 插入数据的时候,返回SQLITE_CONSTRAINT
  16. Ulua_toLua_基本案例(八)_LuaAccessingArray
  17. SQL学习之SQL注入学习总结
  18. python 重复元素排序
  19. find: ‘/run/user/1000/gvfs’: Permission denied
  20. asp.net获取文件绝对路径

热门文章

  1. 【同余最短路】洛谷 P2662 牛场围栏
  2. 微信小程序之组件的集合(一)
  3. WCF 服务
  4. 实践中了解到的CSS样式的优先级
  5. 【linux配置】Linux系统下安装rz/sz命令以及使用说明
  6. js关闭或者刷新页面后执行事件
  7. 【JZOJ4813】【NOIP2016提高A组五校联考2】running
  8. 六.基本数据结构-双端队列(Deque)
  9. 模拟登录新浪微博(Python) - 转
  10. JavaScript学习之setTimeout