网页优化静态化技术.docx_第1页
网页优化静态化技术.docx_第2页
网页优化静态化技术.docx_第3页
网页优化静态化技术.docx_第4页
网页优化静态化技术.docx_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

网站静态化与mysql优化(一)后面的5天给大家讲一个无论在工作中,面试中遇到比较多的技术,大型网站优化的关键技术,重点讲:页面静态化技术;缓存(redis、memcache);数据库的优化。目录一、判断大型网站的基本概念11、pv值(page views)页面浏览量12、uv值(unique vistor)独立访客,13、独立ip1二、大型网站带来的问题?21、大的访问量(大并发)22、大的流量,(大的带宽的问题)23、海量的数据存储2三、如果解决大访问量带来的问题:2四、大流量问题的解决方案:3(1)在web 服务器端,配置压缩,减少数据传输的数据量。3(2)合并文件(样式文件,js文件,背景图片文件),减少http的请求,6(3)把比较占用流量的资源(或不同的功能)单独部署服务器。7五、大存储的解决方案:81、使用缓存技术82、对mysql优化8六、页面静态化技术:91、什么是页面静态化,92、了解几个概念93、实现方式94 、程序缓存,95、ob缓存,106、如何开启 ob缓存。117、ob相关的函数118、真静态案例说明139、真静态案例的扩展,给他一个缓存周期,1510、静态化在smarty模板引擎里面使用1611、静态页面在TP框架里面的使用,16七、网站并发测试工具17一、判断大型网站的基本概念1、pv值(page views)页面浏览量是指,一个网站的所有页面,在一天内被访问的总的次数。达到千万级别以上,几百万以上。2、uv值(unique vistor)独立访客,是指,一个网站,在一天内有多少个用户来访问我们的网站。一般几十万以上。,3、独立ip是指,一个网站,在一天内有多少个独立ip来访问我们的网站。如果我们要考虑公司局域网:uv值略大于独立ip。二、大型网站带来的问题?1、大的访问量(大并发)并发:是指在某个时间点,有多少个用户同时访问某个地址。2、大的流量,(大的带宽的问题)3、海量的数据存储网站从小到大的数据的存储,比如数据表的容量达到GT级别,带来查询速度变慢,要从海量的数据表里面快速的查找到数据,是我们优化的重点。三、如果解决大访问量带来的问题:采用分层架构服务器,使用负载均衡来架构,负载均衡说明:软件:lvs(linux virtual server)linux虚拟服务, nginx(web服务器,负载均衡)硬件:f5-bigip :价格昂贵,立竿见影,效果非常好。一般是大的网游公司或大的门户网站使用。负载均衡器的策略:(1)轮询:负载均衡把请求轮流转发给web服务器。(2)最少连接:负载均衡把请求转发给最空闲的那台服务器。(3)ip哈希:同一地址的客户端,负载均衡把请求始终给同一台服务器。四、大流量问题的解决方案:(1)在web 服务器端,配置压缩,减少数据传输的数据量。原理图:Apache上利用gzip压缩算法进行压缩的模块有两种:mod_gzip和mod_deflate. Apache 1.x系列没有内建网页压缩技术,使用额外的第三方mod_gzip模块。Apache2.0以上的版本中gzip压缩使用mod_deflate模块。通过查看浏览器请求的头信息里面,看到当前浏览器支持的压缩的格式;具体的步骤:(1)打开apache的httpd.conf配置文件,开启压缩模块。(2)在虚拟主机里面,配置压缩的对象。 #配置压缩的级别,压缩级别为6,可选1-9,推荐为6DeflateCompressionLevel 6#压缩文本文件 AddOutputFilterByType DEFLATE text/plain #压缩html文件AddOutputFilterByType DEFLATE text/html #压缩xml文件AddOutputFilterByType DEFLATE text/xml 注意:为什么要指定文件类型来压缩?压缩也是要耗费cpu资源的,图片/视频等文件,压缩效果不好,不要对其压缩。一般压缩的是文本格式的文件。DeflateCompressionLevel 指令来设置压缩级别。该指令的值可为1(压缩速度最快,最低的压缩质量)到9(最慢的压缩速度,压缩率最高)之间的整数,其默认值为6(压缩速度和压缩质量较为平衡的值)压缩前:压缩后:具体的配置代码: DocumentRoot D:/amp/demo ServerName Options indexes FollowSymLinks ExpiresActive On ExpiresByType image/jpeg access plus 12 months AllowOverride All Order allow,deny allow from all #配置压缩的级别,压缩级别为6,可选1-9,推荐为6 DeflateCompressionLevel 6 #压缩文本文件 AddOutputFilterByType DEFLATE text/plain #压缩html文件 AddOutputFilterByType DEFLATE text/html #压缩xml文件 AddOutputFilterByType DEFLATE text/xml 注意:可以通过firbug软件分析响应头信息里面 content-type值来查看文件的类型。(2)合并文件(样式文件,js文件,背景图片文件),减少http的请求,(3)把比较占用流量的资源(或不同的功能)单独部署服务器。比如在京东里面,是把不同商品(不同的资源)部署到不同的服务器上面,达到分流的作用。五、大存储的解决方案:1、使用缓存技术主要目的是:减少数据库的查询次数。磁盘缓存(页面静态化)页面静态化,就是把一个动态(操作数据库)的页面,转换成一个.html页面。直接访问生成的.html页面。提高了访问速度,因为没有查询数据库。内存缓存(redis/memcache)把数据缓存到服务器端的内存里面。下次访问时,直接从内存里面获取数据。2、对mysql优化六、页面静态化技术:1、什么是页面静态化,就是把一个动态(操作数据库)的页面转换成一个.html页面。比如/goods.php?id=4; 可以变成/goods_id4.html页面静态化可以分为两种:真静态和伪静态。真静态:就是把一个动态的页面,实实在在的生成一个静态页面。伪静态:从形式上看是一个静态页面,实际上操作的还是动态页面。比如/news-sport_id12.html实际上操作是:/news.php?type=sport&id=122、了解几个概念(1)动态网址,就是操作数据库的页面,比如:/goods.php?id=4特点:操作数据库,执行速度慢;因为要接收参数,会导致不安全(比如sql注入);不利于seo的。(2)静态网址,就是静态页面.html页面特点:不操作数据库,执行比较快;不接收参数,比较安全;利于seo(3)伪静态网址:从形式上看是一个静态页面,实际上操作的还是动态页面特点:操作数据库,执行速度慢;不接收参数,利于安全;利于seo3、实现方式真静态的实现方式:使用ob缓存技术,ob缓存,缓存的内容是响应的主体数据。在请求一个php的过程中,我们实际上经过三个缓存,程序缓存,ob缓存,浏览器缓存。伪静态的实现方式:通过web服务器的重写机制 ,比如请求 index.html index.php4 、程序缓存,该缓存是必须存在的,是无法关闭的。缓存的数据是响应的数据(响应的头和响应的主体数据)5、ob缓存,ob就是 output_buffering:输出缓存,缓存的数据是响应的主体数据,在请求一个php的过程中,我们实际上经过三个缓存,ob缓存,程序缓存,浏览器缓存。 如果开辟了ob缓存,主体数据首先存储到ob缓存里面,头信息要存储到程序缓存(无论是否开启ob缓存),当代码执行完毕后,ob缓存里面的数据刷新(移动)到程序缓存,程序缓存再输出到浏览器缓存中,最后输出内容。6、如何开启 ob缓存。(1)使用ob_start()函数,针对当前页面有效。(2)通过使用php.ini的配置文件来开启ob缓存,针对所有的页面都有效。7、ob相关的函数通过ob的函数,来完成数据的存储,ob_get_contents();/获取ob缓存里面的内容。ob_clean();/清空ob缓存里面的内容,不关闭ob缓存ob_end_clean();/清空ob缓存里面的内容,并关闭ob缓存。ob_flush();/是把ob缓存里面的数据给刷新(移动)到程序缓存。不关闭ob缓存。ob_end_flush();是把ob缓存里面的数据给刷新(移动)到程序缓存。并关闭ob缓存。获取ob缓存里面的数据内容,$content = ob_get_contents();响应主体的数据,file_put_contents(文件名称,文件内容);/ 生成了一个静态页面吗。8、真静态案例说明有两个页面,一个是新闻列表页面,一个是新闻的详情(内容)页面。让新闻详情做成真静态页面。list.php是新闻的列表页面:newsinfo.php页面生成的静态页面:9、真静态案例的扩展,给他一个缓存周期,缓存周期比如是300秒,如果没有生成静态页面,假如并发量为500,300秒内操作数据库多少次?500*300如果生成了静态页面,缓存周期为300秒,并发也是500,问300秒内操作了数据库多少次。1次,因为,第一次生成了静态页面,以后就访问静态页面了。判断的条件要添加一个,此时需要两个条件:(1)判断静态页面是否生成, file_exsits();(2)还要判断是否在缓存期内文件生成的时间+缓存周期 time()如何计算文件的生成时间(最后修改时间)filemtime10、静态化在smarty模板引擎里面使用$smarty-cache_dir = “./cache/; /缓存目录 $smarty-caching = true; /开启缓存,为flase的时侯缓存无效 $smarty-cache_lifetime = 60; /缓存时间(单位 秒) if(!$smarty-isCached(01.html) /判断模板文件是否被缓存。 11、静态页面在TP框架里面的使用,(1)配置一个总的开关,(2)在各自的模块里面的配置文件里面进行配置。指定哪个控制器的哪个方法。缓存周期,3600秒变量的一个属性指定生成的静态页面的存储路径,设置生成静态文件的规则12、页面静态化的选择(1)网站实时性要求高,不要使用静态化(真静态,伪静态均不适宜)。 (2)如果网站访问量较小,没有必要使用静态化技术 (3)如果数据项目不多,但是访问频率极大,建议使用真静态,比如新浪新闻频道。(4)如果数据项目海量,使用真静态会生成海量的html静态页面,建议使用伪静态。 (5)在一个大型网站中,静态化技术是综合使用的,这个需要大家经验的积累,多做项目。(sina网站:新闻频道,真静态,基金频道:伪静态,管理后台:不使用静态技术) 七、网站并发测试工具1、apache/bin/ab.exe 程序可以来做效率测试基本使用:ab options https:/hostname:port/pathoptions是选项:-n 执行访问总次数-c 用户并发数量(有多少人同时访问)语法:进入到cmd命令提示符下bin目录下面执行。ab -n 10000 c 100 http:/url地址。案例:在默认的情况下,apache的并发量是150的。一个网站上线后,需要修改它支持的并发量。2、如何调整apahce的最大并发数在默认情况下,apache的最大并发为150个,因此需要调整首先搞清楚当前apache是什么MPM(多路处理模块), 通俗讲就是apache处理多并发的方式, 常见的有三种 (1)perfork(预派生模式) (2)worker(工作者模式) (3)winnt模式(windows下默认的模式)查看当前的apache服务器是哪种模式,3、基本配置的步骤:(1)开启MPM打开apache的配置文件,httpd.conf,(2)在mpm的辅助配置文件中进行配置。(3)打开httpd-mpm.conf的配置文件。推荐的配置如下:在linux下一般是perfor模式 给大家一个合

温馨提示

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

评论

0/150

提交评论