PHP静态化
一、判断大型网站的标准
1、pv值(page views)网站浏览量:
概念:一个网站,所有的页面,在一天24小时内,被访问的总量,达到千万级别,或者几百万以上。
2、uv值(unique visitor)独立访客:
概念:一个网站,在一天24小时内,有多少个用户来访问我们的网站。uv值几十万个,
3、独立 ip,
概念:一个网站,在一天24小时内,有多少个独立ip来访问我们的网站。
如果要考虑公司的局域网,uv值略大于独立ip的。
二、大型网站带来哪些问题:
1、高的并发量。
并发量:一个网站的,在同一个时间点(1秒内),有多少个用户正在请求同一个地址的网站。
2、大的流量(带宽)
带宽需求变大。
3、数据存储的问题。
当数据表里面的记录非常大,从容量来说,达到 GT级别,要快速的查找到想要的数据。
三、高并发如何解决:
网站的架构,采用分层设计,使用负载均衡和集群。
四、如何解决大流量
1、防止网站的资源被盗链,存在于一些大的资源类型的网站
2、减少了http请求,
可以把一些css样式文件和js,一些背景图,合并成一个文件。
3、配置浏览器缓存
把一些更新不是很频繁的资源,比如css,js,图片,缓存到浏览器端,当浏览器请求同一资源时,直接从浏览器缓存里面取出。
4、配置压缩,减少数据传输量
5、可以把比较占流量的一些资源单独部署服务器。
6、花钱买带宽。
五、大存储的解决方案:
最终目标:不查询数据库或少查询数据库,在查询数据库时,要快速的查询到数据。
1、使用服务器端的缓存。
(1)磁盘缓存(页面静态化技术)
(2)内存缓存
内存缓存技术:
memcache,redis,mongodb,mysql的memory存储引擎
2、优化数据库
六、页面静态化技术
把一个动态(操作数据库)的php页面,转换成一个静态的.html页面
实现步骤;
一个http请求,返回的数据分两部分,响应头部信息和响应主体。
(1)拿到响应主体数据内容。(ob缓冲)
(2)把响应主体数据内容,写入到html文件中,(file_put_contents)
(3)直接访问html文件。
1、ob缓存内容:
ob缓存:output_buffering(输出缓存),用于缓存响应主体的数据内容。
如何开启:
第一种方式:在php.ini文件中,
第二种方式:在页面中使用ob_start()函数,来开启。
两种方式的区别是,ob_start()只在当前页面有效,
2、常用函数
ob_start( );开启
ob_get_contetns();获取ob缓存里面的数据内容。
ob_clean();//清空ob缓存里面的数据,不关闭ob缓存。
ob_end_clean();//清空ob缓存里面的数据,并关闭ob缓存。
ob_flush();//把ob缓存里面的数据给刷新(移动,推送)到程序缓存,不关闭ob缓存。
ob_end_flush();//把ob缓存里面的数据给刷新(移动,推送)到程序缓存,并关闭ob缓存。
3、网站静态化:
真静态:实实在在的生成一个html页面。
伪静态:从表面上看是访问的一个静态页面,实际上还是访问的是动态页面。比如如下地址:
http://www.abc.com/news-music-id12_10.html
实际上是访问:http://www.abc.com/news.php?type=music&id=12&page=10页面。
伪静态主要是利于seo的。
实现方式:
真静态实现方式:
第一种:使用ob缓存技术。
第二种:使用模板替换技术
伪静态的实现方式:使用apache的 rewrite机制(url重写机制)
哪些网站适合于真静态?
网站页面访问比较频繁的,更新不是很频繁,比如一些新闻类型的网站,不适合于要求实时更新的一些网站,比如股票类型的网站,
最新文章
- Quart.NET实施参考
- AngularJS笔记---路由视图
- 电脑无法登陆ftp
- CentOS6.5的openssl升级
- Core Bluetooth下实现两个设备进行互联
- iOS动画特效 分类: ios技术 2015-05-15 16:29 311人阅读 评论(0) 收藏
- 《Language Implementation Patterns》之 增强解析模式
- Mongodb注入
- web框架的本质
- 通过Socket让远程电脑执行脚本
- python调用opencv库教程
- lucene相关
- HDU 1495 非常可乐【BFS】
- linux如何安装多个jdk?
- Android View坐标系详解(getTop()、getX、getTranslationX...)
- sklearn模型保存
- jquery实践
- C# 二进制字符串互转
- cdoj793-A Linear Algebra Problem
- FFmpeg 入门(5):视频同步
热门文章
- Android中finish掉其它的Activity
- codevs2800 送外卖
- linux磁盘分区模式
- 《UNIX网络编程(第3版)》unp.h等源码文件的编译安装
- Shell入门教程:命令替换 $() 和 ``
- 【Alpha版本】冲刺-Day5
- CentOS下SNMP的安装与使用
- 【ZJOI2008】 树的统计 count
- 数组排序sort()
- <;input />;文字方框中,字体颜色的变化 要求默认的字体颜色是灰色,当要输入字时,字体是正常的黑色