下午笔记图解2013-08面静态化_第1页
下午笔记图解2013-08面静态化_第2页
下午笔记图解2013-08面静态化_第3页
下午笔记图解2013-08面静态化_第4页
下午笔记图解2013-08面静态化_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、页面静态化技术第 1 章大型和他 11.1判断大型的标准..41.1.5大型..4Pv(page views)1IP1UV1同时人数1数据库(表)大小 T1以及常用的解决方案1架构使用分层结构,同时使用服务器集群1Web 吞吐瓶颈的其它解决方法2数据库瓶颈其它解决方法2使用缓存技术31.2第 22.12.2页面静态化技术4页面静态化的基本原理4几个重要概念4章.22.2.3静态4址5伪静态52.3页面静态化的分类.2测试.22.4.3从形式看5从范围看6效率的工具 AB.EX

2、E6基本用法6快速入门6如何调整最大并发数62.4 如何确定你的 apache 是使用什么 mpm7一些 SEO 的小建议92.5第 第 44.14.2页面静态化具体实现12的缓存机制12章关于在服务器的缓存机制的小结12看看 OB 缓存的几个函数12管理系统15界面设计15数据库设计15章程序框架图15实现阶段16真静态的优缺点分析26第 5 章5.45.5伪静态技术28伪静态的基本概念28基本原理28实现伪静态的方法28在程序中处理伪静态29补充讲解正则高级-环视31第 1 章判断大型大型和他1.1的标准1.1.1Pv(page vi

3、ews)Page view 就是页面: 一个在一天内,所有页面被浏览的次数综合.,上千万的pv 值,百万级的也勉强可以算.1.1.2IP一天内,有多少个独立IP 来, 一般说 10 万以上.1.1.3UVUv(unique visitor)独立访客.1.1.4同时人数同时人数超过 1 万=并发1.1.5数据库(表)大小 T表上T 就算是一个大表1.2大型以及常用的解决方案1.2.1架构使用分层结构,同时使用服务器集群1.2.2Web 吞吐瓶颈的其它解决方法对数据进行压缩传输. Gzip deflate 来压缩, 这里解决这个问题,这个后面会演示.可以通过配置apache尽量合理的优化的大小.,

4、 jpg,gif, 尽量使用背景图, 尽量使用小图.买带宽(花钱 ) 1*2m*3000000*60=36000001.2.3数据库瓶颈其它解决方法表的设计要合理, 符号 3NF, 为了防止数据冗余创建适当索引(主键索引|唯一索引|普通索引|全文索引|空间索引)创建使用的过程和触发器,视图优化my.ini 配置 insert优化本身sql 语句o 表名 values(,) values(“,”);分表技术(把一个海量表分成几个小表, 水平分割,垂直分割)硬件和升级(64 位,使用 64)1.2.4使用缓存技术因为程序的执行速度 内存文件数据库 ,如果可以减少对数据库的访问,这样对的负载有提高,

5、 分 文件缓存, 内存缓存页面静态化Memcached 缓存技术(Redis)第 2 章页面静态化技术技术在什么地方使用传统的方法解决不方便基本原理(基本用法)快速入门案例看细节(使用陷阱,怎样使用在是正确)实际案例项目2.1页面静态化的基本原理看一个实际的案例:2.2几个重要概念2.2.1:静态比如: 特点: 1.sql 注入就是静态.不操作数据库,因此速度快 2. 不接收参数,因此安全性比较高,放在loginAction.?Extarac($_GET);$id=isset($id)& is_numeric($id)? $id:0; If($id=0)Die(参数有误);/对$id 要验证.

6、 1. 正则表达式(重点) 如何验证 id 必须是一个整数,不能以 0 开头/1-9d*$/2. is_函数. 这里我在强调一把,对sql 语句一定有过滤机制Union load_file outfile sleep benark表名$sql=”selectpwd,uname3. 利于 SEOfromwhere id=$id”;2.2.2址比如特点: 1.一般说,会操作数据库,注意 3. 不利于seo2. 接收参数,所以有安全性问题,注意sql速度慢2.2.3伪静态比如 :们希望这个&class=sport&id=2在实际开发中,我是这样形式 HYPERLINK http:/l/ http:/

7、l-sport-id2.html特点 1. 形式是是静态收参数,安全性较高 3.,但是实际是对应一个动态地址,因此速度慢 2. 不接利于seo2.3页面静态化的分类2.3.1从形式看真静态 , 把一个动态的页面实实在在的对应一个静态页面伪静态 ,形式是是静态,但是实际是对应一个动态地址2.3.2从范围看全局静态, 这个页面都是静态的局部静态, 实现方法(1. 2. 使用 jquery 发出ajax 请求,然后服务器可以返回json, xml , 文本,然后浏览器得到数据后,在填充适当位置)2.4测试效率的工具 ab.exe作用就是,可以测试页面响应速度的工具,同时可以测试最大并发人数,可以讲解

8、 如何配置apache 最大并发数, MPM 是什么?这里2.4.1基本用法cmdab.exe n 请求次数 c 并发数 页面的请求地址url2.4.2快速入门2.4.3如何调整最大并发数默认情况下,apache 最大并发是 150.调整最大并发值,步骤 首先确定当前的apache 使用什么 MPMMpm(多路处理模块), 通俗的说: apache 处理并发请求的方式., 了解.Perfork 原理说明:prefork 的工作原理是, 控制进程在最初建立“StartServers”个子进程后,为了满足 MinSpareServers 设置的需要创建一个进程,等待一秒钟,继续创建两 个,再等待一

9、秒钟,继续创建四个如此按指数级增加创建的进程数,最多达到每秒 32 个,直到满足 MinSpareServers 设置的值为止。这就是预 派生(prefork)的由来.这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销以增加性能。Worker 原理说明:worker 的工作原理是, 由主控制进程生成“StartServers”个子进程,每个子进程中包含固定的 ThreadsPerChild 线程数,各个线程独立地处理请求。同样,为了不在请求到来时再生成线程,MinSpareThreads 和 MaxSpareThreads 设置了最少和最 多的空闲线程数;而 MaxC nts 设置

10、了所有子进程中的线程总数.如果现有子进程中的线程总数不能满足负载,控制进程将派生新的子进程。 如何确定你的apache 是使用什么mpmcmdhttpd.exe l说明: 参看 mpm_.c 这里的就是你的 mpm 方式. 修改httpd.conf 文件.# Servool management (MPM specific)Include conf/extra/httpd-mpm.conf 修改httpd-mpm.conf 文件这里,修改成并发 1000ThreadsPerChild MaxRequestsPerChild这里,请各位注意, 你的机器能否是说一定就可以并发 100010000并

11、发到 1000, 还有取决于你的机器的cup ,内存,不 重启apache,测试 800 并发ok? 如何配置的并发值,比较好 ,我给一个参数, 如果中型,建议给的 1500-2500 间.ThreadsPerChild MaxRequestsPerChild20001000Linux 下配置参考值:因为在 linux 下,一般说采用的 MPM 是 perfork 模式,看看如何配置.StartServers MinSpareServers MaxSpareServers MaxCnts MaxRequestsPerChild55101500#并发量#一个进程对应的线程数,对 worker 更

12、用.给大家一个合理的建议配置. 对大部分,中型,配置:StartServers MinSpareServers MaxSpareServers ServerLimitMaxCnts5#预先启动51025002000#最大空闲进程#用于修改apache 编程参数#最大并发数MaxRequestsPerChild 500最佳: 首先计算的内存占用 一个并发 200k*并发数=总内存-必须占用内存.课后练习 关于ab.exe 程序的其它使用方法可以参考手册2.5一些 seo 的小建议:1.2.3.url 长度不要超过 255静态页面不要给参数. meta 信息.name=description co

13、ntent=培训,下载,4.5.如果希望被抓取前端页面不要使用框架 frame framesetseo.到时第 3 章页面静态化具体实现实现页面静态化有两种方法 1. 使用的ob 缓存机制 2. 使用模板来实现.3.1看一段代码:的缓存机制3.21.2.关于在服务器的缓存机制的小结在服务器端有程序缓存,这个缓存必须有,程序员不能关闭.服务器端可以开启 ob 缓存,有两个方法 * 通过 ob_start() 开启,页面生效 * 可以在.ini 的配置文件中启用ob;打开ob 缓存output_buffering = 4096只在当前3.如果你没有打开ob 缓存,echo 数据直接放入到程序缓存,

14、如果你打开,就先把echo 数据放入ob 缓存.4.执行到最后时,系统把 ob 数据刷新到程序缓存,然后交给当的apache,并组成成http 响应包,发送给浏览器3.3看看 ob 缓存的几个函数看程序 ob1.Ob2.第 4 章管理系统系统开发流程需求分析(需求分析师)-设计阶段(项目经理,架构师,设计文档 ) 实现阶段( 程序员码农)测试阶段( 测试工程师)实施阶段( 实施工程师)阶段(), 使用原型开发4.1界面设计4.2数据库设计表:create table news(idunsigned primary key auto_increment, /*/title varchar(128

15、) not null,/*标题*/ content varchar(256) not null,/*内容*/filename varchar(32) /*该对应的静态页面*/ engine=MyISAM charset utf8;测试数据insertinserts (title,content) values(s (title,content) values(o1,o2,你好);你好);4.3程序框架图画出有多个个文件,文件之间调用关系是什么?4.4实现阶段代码 到此基本写好,分析问题. 每次 查看某个信息,都会去查询数据库,需要页面静态化。 这里使用到ob 实现页面静态化。代码这里newsL

16、ist.showNews.对程序思考: 发现问题1.2.总是要一个人去数据库的,可以这样解决,如果修改了,根据目前的代码是看不到我可以给静态文件设置一个有效时间 30s, 每 30s 就让代码自动去更新静态页面, 这里通过增加下面一个条件,就解决问题的但是不满意,所以想一个更好的方法.:在管理员添加,修改,删除某个时,就直接修改对应的静态页面,这样处理更好,这里会使用模板替换技术-修改程序框架图整理代码:newsList.addNews.html添加newion.,显示.处理添加,修改,删除模板文件 news.tmp对程序再思考1.在创建静态页面的时候,使用分目录来存放,年/月日/静态页面,

17、怎么把这个的静态页面名包括路径下来.2. 思路 分析示意图给大家.首页面静态化来实现一下:整理代码:前端全部是静态页,全部是静态生成!:login.html 登录界面,自己写loginAction.manage.验证用户.管理页面addNews.htmlnewion.处理.news.tmp 模板文件没有变化 ,newsList.页面,用于生成index.html说明: 在cms 系统, 将来模板会复杂些,但是整体的流程是这样的.4.5真静态的优缺点分析优点: 1. 利于seo 2. 生成一个静态页,因此不用查询数据库,速度快. 3. 不接受参数,安全性高.缺点: 如果数据库信息海量,那样就会生

18、成海量的静态页面,占用大量的磁盘空间。大家可以通过分目录存放来解决查找静态页速度慢.哪些不适宜使用真静态.1.2.如果网页数据变化非常频繁, 不要使用真静态. 比如: 基金 ,黄金报价.如果数据库信息海量,同时你生成静态页后,查看静态页次数很少,比如 电信,移动的话费查询系统. , 不要使用网页不愿意被seo 到3.4.量很小,就是系统第 5 章5.1伪静态的基本概念伪静态技术的页面,不适合使用真静态时,但希望 url 很简洁,利用 seo,这时当可以考虑使用伪静态, 他的特点是从形式看是一个静态地址,但是在服务器端,没有这个静态页,实际上还是由动态的页面来处理你的请求. 举例url在实际开发

19、中,希望是5.2基本原理图示意:实现伪静态的方法直接在程序中使用正则技术来完成伪静态2. 使用apache 的rewrite 机制来实现伪静态5.4在程序中处理伪静态看一个案例. 这个案例把很多内容融入了.最后使用正则在程序中处理:5.5补充讲解正则高级-环视大家参考 正则高级环视.doc,5.6使用 apache 的 rewrite 机制来完成伪静态原理图入上:5.6.1快速入门案例说:/news.?type=music&id=100我希望用户实际用的而是/news-music-id100.html步骤 1. 创建一个news.文件.步骤 2. 修改httpd.conf 文件,启用rewri

20、te 模块#启用rewrite 模块LoadModule rewrite_module modules/mod_rewrite.so # Virtual hostsInclude conf/extra/httpd-vhosts.conf步骤 3. 配置一个虚拟主机,并规定重写规则,httpd-vhost.conf 文件步骤 4: 修改hosts 文件步骤 5: 重启并测试, 通过. 最后的虚拟主机的配置如下:5.7关于 Directory 节点的细节如何在 Directory 节点上配置,重写规则,配置如下:(修改httpd-vhosts.conf)权限, 403 404 还有欢迎页面, 具体

21、如果,没限去修改 httpd-vhosts.conf然后把这个文件放入到文件,可以把重写规则,直接写在.htac到.htacs 文件, 的某个目录下,把配置修改s 文件中,这样可以更加灵活的控制.5.8在.htacs 文件中配置的权限根目录 .htacs 文件.在第 6 章伪静态的应用6.1使用伪静态来控制文件夹的我有两个目录public 和 private , public 下面的, pirvate 目录可以被,可以.只有本分析思路: 如果可以判断Referer 值是否包含为如果包含,说明是本的请求,就返回,如果不包含则可以判断是盗链的,就拒绝返回.解决方法:修改 pirvate文件夹下的

22、.htacs 文件.6.2伪静态的应用 2的根目录下的 .htacs 文件中,?c=$1&a=$2最后在这样配置#RewriteRule (a-zA-Z_0-9+)/(a-zA-Z_+) index. 这里有一个细节问题RewriteRule (.+) news.?id=$1 QSA,LQSA : 表示 他把接收的值,当做一个 query string ,这样可以把整个匹配到的结果传递给牧歌页面. L 表示他是最后一个规则,匹配后,就不再继续匹配.6.3伪静态应用 3如何做到:在当 abc.html 存在就直接abc.html ,否则才去访问 index.如何配置:在.htacs 中增加了配置

23、RewriteCond %REQUEST_FILENAME !-fRewriteRule abc.html index.6.4伪静态应用 4通常可以简化掉 index.,在很多框架中,对于框架单的,比如步骤:1. Conf/config.文件将URL_M设置为 22. 按步骤来配置重则6.5伪静态的特点总结优点 1. 利于seo 2. 占用空间小 3. 安全性相对高 4. 可以把一个动态的多个静态页面.缺点: 执行效率低,因为要查询数据库 。,虚成6.6伪静态和真静态的选用建议6.7伪静态的练习题1. 配置你只有该可以private 文件练下伪静态使用欢迎页面/404/rewrite 正则规范

24、public private 一定走一遍! 把的管理改成 伪静态.目的就是练习.第 7 章apache 传输数据压缩,全面提速7.1apache 压缩传输的原理7.2apache 的压缩方法程序中添加一句话 ob_start();, 代码如下:方法有两种,一种是在的httpd.conf 文件,启用压缩算法. gzip 和 deflate 算法一样.方法二,配置7.2.1修改httpd.conf #打开这个模块windows 下如何配置LoadModule deflate_module modules/mod_deflate.soLoadModule headers_module modules

25、/mod_headers.so#在LoadModuel 配置最后,# Insert filter增加一段话SetOutputFilter DEFLATE# Netsc4.x has some problems.BrowserMatch Mozilla/4 gzip-only-text/html# Netsc4.06-4.08 have some more problemsBrowserMatch Mozilla/4.0678 no-gzip# MSIE masquerades as Netsc, but it is fine# BrowserMatch bMSIE !no-gzip !gzip

26、-only-text/html# NOTE: Due to a bugod_setenvif up to Apache 2.0.48# the above regex wont work. You can use the following # workaround to get the desired effect:BrowserMatch bMSIE !no-gzip !gzip-only-text/html#t compress imagesSetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzipt-vary# Make sure proxiest deliver th

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论