网站静态化方案

大型站点网站静态化实现方案 大型站点网站静态化实现方案,供大家一起共同分享学习。 立即下载

背景:一般来说网站性能最大的瓶颈来自DB的速度慢,最好的办法就是减少访问DB,这样可以极大地提高网站速度。静态化方案就是为了提高网站速度,优化用户体验,对搜索引擎友好从而提高SEO.

 

目的:打造一个不限开发语言的静态化技术,实现一定的通用性。

 

实施步骤:

1.编写一个网页抓取并生成页面的接口

       /// <summary>
       /// 通过传入的Url地址,获取返回的数据
       /// </summary>
       /// <param name="url"></param>
       /// <returns></returns>
       public static string GetStringByUrl(string url, Encoding encoding)
       {
           string strResult = string.Empty;
           Uri u = new Uri(url);

           try
           {
               HttpWebRequest request = (HttpWebRequest)WebRequest.Create(u);
               HttpWebResponse response = (HttpWebResponse)request.GetResponse();
               Stream streamReceive = response.GetResponseStream();
               StreamReader streamReader = new StreamReader(streamReceive, encoding);
               strResult = streamReader.ReadToEnd();
           }
           catch
           {

               return "error";
           }

           return strResult;

       }

 

//调用的例子

           string str = Utils.GetStringByUrl(sourceUrl, System.Text.Encoding.UTF8);

           using (StreamWriter sw = new StreamWriter(destFile))
           {
               sw.Write(str);
           }

 

2.部署一个网页和一个定时程序(调用网页抓取并生成页面的接口)

网页(CreatePage.aspx):传入需要生成的动态页面的URL,以及生成页面的存放位置

 

定时程序:根据config.xml上的配置,定时生成文件。

配置文件(config.xml): 配置动态页面的URL,和参数规则,以及生成页面的频率,生成页面存放的位置。

例如:http://www.bincl.com/index.php?product-{$1}.html,  $1从1-500  D:/www.bincl.com/page/

 

3.更新方法

   1. 网站信息更新了,如果你能在的网站更新程序里面调用网页(CreatePage.aspx),传入相应的参数,重新生成静态页面就最好,有时程序不是你写的,或者引用第三方的不方便改写的,这种方法就不可实现,可以采用下面方法

 

   2. 配置好定时程序的规则,不频繁页面的可以定在0点到6点访问人数最少的时候生成,一天生成一次,或者一天生成几次,看具体业务定。有些页面很频繁,比较评论等用户交互的信息,可能就需要配置成2分钟更新一次.

 

www.bincl.com的实施过程:

1. 先实现伪静态,实现伪静态的工具比较多,在iis平台下有ISAPI_Rewrite3, 或rewrite等,配置httpd.conf相应的规则就行。

例如:

RewriteRule ^(.*)$ index.php?$1 [L]

RewriteRule /r/i([0-9]+)/.html$  /index/.aspx/?refuserid=$1
RewriteRule /r/i([0-9]+)-(.+)/.html$  /index/.aspx/?refuserid=$1&union=$2

 

2. 在实现伪静态后,配置定时程序生成页面,主页为5分钟更新一次,商品页面是24个小时更新一次,等等

3. 当需要全量更新的时候,直接重启定时程序就实现全量更新。

 

效果:通过监控宝的测速报告可以得出以下结果

未静态化的主页:平均速度为2000ms

静态化后的主页:平均速度为600ms,大概提升了3倍速度

 

 

总结:实现静态化是一个过程,需要解决的问题也是不少的,比较说登录态的显示,通过程序生成的页面是没有登录状态的,这需要改造页面,通过javascript读取cookie来显示登录状态,或者通过ajax请求动态页来返回是否已经登录,通过javascript控制登录状态的显示。

生成的静态页面如果没有内容更新,也可以比较内容是否没有变化来决定要不要再生成,减少生成可以提高页面的cache进一下提速

 

通用大型网站页面静态化解决方案 多个文件服务器读写,这里可采用SMB协议 页面静态化,可采用freemarker开源框架 如果考虑到大量的读写请求,则将请求分布式或采用调度的办法来解决 第一点我们首先应该考虑文件服务器与静态页面的映射关系,即什么文件应该读写到哪台服务器,这个关系最简单的办法是随机映射,然后将映射关系保存到数据库中即可,SMB常用的操作代码如下: 代码如下:    public static boolean exists(String filepath,String username,String pwd) throws Exception     {     SmbFile file = new SmbF 立即下载

相关推荐

UE4引擎分析获取UWord,GName,GetName,GObjectArray

UE4引擎具有很多固定特征和特性 所以我们在逆向UE4引擎开发的游戏的时候,可以利用这些特征和特性. 当然,正常思路逆向也是没问题的(例如我们的ttw课程全数据逆向),你就当多了一个针对于该引擎逆向的快捷方式 或则多了一个思路即可. 正常逆向+引擎分析,使逆向结果全面且快速.

任鸟飞2217777779的博客 1万+

网站静态化处理—动静整合方案

  上篇文章我简要的介绍了下网站静态化的演进过程,有朋友可能认为这些知识有点过于稀松平常了,而且网站静态化的技术基点也不是那么高深和难以理解,因此它和时下日新月异的web前端技术相比,就显得不伦不类了。其实当我打算写本系列的之前我个人觉得web前端有一个点是很多人都知道重要,但是有常常低估它作用的,那就是web前端和web服务端如何融合的这个点上,这个点再加上我们要做出一个规模庞大,高并发,快速响...

void 481

mongoDB 数据莫名其妙的没了

问题 之前没有接触过mongoDB,然后接手一个项目使用的是MongoDB,我就跟着网上的教程搭建一个MongoDB的服务,并运行起来。 一开始没有啥问题,成功的把服务与MongoDB都启动以来,运行也没有问题。但是过了几天,我再次打开时发现,以前的数据神奇的消失了。我还在想,是有什么定时清除的么,还是什么原因导致崩了然后数据就被清理了。 查找原因 第一次遇到我没有在意,重启了一下MongoDB,...

技术熊的博客小窝 1万+

BAT 大厂的大型网站页面静态化你了解吗?

我们小伙伴们在访问淘宝、网易等大型网站时有没有考虑到,网站首页、商品详情页以及新闻详情页面是如何处理的?怎么能够支撑这么大流量的访问呢?很多小伙伴们就会提出他们都采用了静态化的方案,这样用户请求直接获取静态数据html,就不需要访问数据库了,性能就会大大提高;而且提高网站SEO优化。那今天老顾就带着大家聊一下静态化。把老顾之前工作场景中静态化方案遇到的问题,以及如何演变的,分享给小伙伴。关于相关的...

lxw1844912514的博客 720

Cesium实战:5分钟搞定离线地图与地形加载(附避坑指南)

本文详细介绍了Cesium在内网环境下的离线部署实战方案,重点解决了影像与地形数据的本地加载问题。通过逐步指导项目配置、本地瓦片与自定义地形数据的处理,并优化相机控制体验,帮助开发者快速构建安全、高效的三维地球应用,避免常见的401错误与加载失败陷阱。

weixin_30632089的博客 281

【紫光同创PG2L200H开发板】盘古200Pro+开发板(MES2L676-200HP)

开发板 SMA接口符合标准 SMA 接口规范,可使用”内螺旋+插针“的 SMA 线连接板卡”外螺旋+插孔”的 SMA 接口进行通信,板卡 SMA 接口与 FPGA 的 HSST 收发器的一路 RX/TX 相连,TX信号和 RX 信号都是以差分信号方式通过隔直电容连接 FPGA 和 SMA 接口, TX 发送和 RX 接收数据速率高达 6.6Gb/s。为了减轻带电插拔造成对 FPGA 芯片的损坏,在设计上在 JTAG 信号位置添加了保护二极管来保证信号的电压在 FPGA 接受的范围,避免 FPGA 的损坏。

MYMINIEYE的博客 2883

网站页面静态化,一般是这样搞的

网站页面静态化,一般是这样搞的 随着网站的内容的增多和用户访问量的增多,无可避免的是网站加载会越来越慢,受限于带宽和服务器同一时间的请求次数的限制,我们往往需要在此时对我们的网站进行代码优化和服务器配置的优化。 一般情况下会从以下方面来做优化 1、动态页面静态化 2、优化数据库 3、使用负载均衡 4、使用缓存 5、使用CDN加速 现在很多网站在建设的时候都要进行静态化的处理,为什么网站要进行静态化处理呢?我们都知道纯静态网站是所有的网页都是独立的一个html页面,当我们访问的时候不需要经过数据的处理直接就能

weixin_43503815的博客 6268

告别TI官网迷路!手把手教你用C2000Ware为TMS320F28027搭建Proteus仿真工程模板

本文详细指导如何使用C2000Ware为TMS320F28027搭建Proteus仿真工程模板,帮助DSP开发者快速上手。从资源获取、工程目录设计到关键文件配置,再到CCS与Proteus的联调技巧,全面解析仿真工程搭建的每个步骤,特别适合初学者和工程师参考。

weixin_42715608的博客 472

网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析

  最近在给公司的产品做一个较完善的web架构,特转帖几篇入门文档,等使用一段时间后,再写些使用心得。   1、HTML静态化其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。但是对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现,于是出现了我们常见的信息发布系统CMS,像...

liu3098651的博客 205

Unity学习笔记之【IK反向动力学操作】

反向动力学,简称IK。相较于正向动力学,反向动力学旨在子级对父级产生的影响。使用IK,可以实现根据目标位置或方向来计算并调整角色的关节(骨骼)链,以使角色的末端(如手臂、腿部等)达到预期的位置或取向。通过使用 Unity 的 IK 功能,你可以实现各种复杂的角色动画效果,如角色抓取、足部对齐、手臂跟随等。 2. 将所视的目标物体拖拽绑定 4. 实现效果如下 :移动角色时注释立方体 实现效果如下

m0_47351846的博客 2954

【AUTOSAR实战】:CAN发送邮箱忙导致报文发送丢帧的问题调试

本文档主要讨论了CAN总线通信中可能出现的TC377传输错误的分析和解决方案。文章提供了如何通过检查CAN传输和接收过程、识别传输缓冲区的类型和状态以及选择适当的内存保护功能来检测和解决此类错误的见解。经过多次尝试和分析,得出的结论是,修改CANIF缓冲的尺寸并重新分配报文给各个buffer并不能解决问题。此外,发送中断被抢占可能导致报文无法发送,最终也将此因素排除。本文档还提到了一些可能导致发送流程调度出现问题的因素,例如CANIF中报文引用Buffer不合理。

weixin_46481662的博客 3137

网站静态化方案(一)静态化原理

网站静态化方案(一)静态化原理 时间:2016-10-26 15:52:04 作者:zhongxia 原文地址:https://github.com/zhongxia245/blog/issues/39 网站静态化,看产品或者网站的需求,不要为了静态化而静态化。 这里主要讲一些原理,没有具体的实例。 一、 为什么要静态化? 加快页面打开浏览速度,静态页面无需连接数据库打开速度较动态页面有明显...

weixin_34270606的博客 241

大模型技术全景与核心概念解析:从基础原理到AI智能体架构(实时更新中)

本文系统解析了大模型技术的核心概念与架构。首先介绍了LLM(大语言模型)、LLMOps(模型运维)、AIGC(生成内容)、AGI(通用AI)等基础概念,重点阐述了大模型的工作原理,包括预处理、推理和后处理三个阶段。深入讲解了Token分词、FLOPs计算、Embedding向量表示等关键技术,并分析了LoRA微调、MoE架构等前沿方法。文章还探讨了AI智能体的发展前景,为理解大模型技术提供了全景视角。

算法工程师 1233

网站页面静态化方案

前端时间,由于网站mysql数据库性能瓶颈原因,开始研究网站页面静态化。目前已上线并且运行良好,具体的过程和想法贴出来,和大家一起分享一下。 网站: http://v.xxt.cn 静态化的好处: 1.响应速度快,避免中间转换步骤 2.避免与数据库的交互,减轻服务器的压力 3. 对SEO友好,更容易被爬虫抓取。(貌似此处现在没有这个优势了。

郭建坤的技术空间 1121

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

大型电商网站的页面静态化方案是如何支撑亿级流量的?

前言 我们小伙伴们在访问淘宝、网易等大型网站时有没有考虑到,网站首页、商品详情页以及新闻详情页面是如何处理的?怎么能够支撑这么大流量的访问呢? 很多小伙伴们就会提出他们都采用了静态化的方案,这样用户请求直接获取静态数据html,就不需要访问数据库了,性能就会大大提高;而且提高网站SEO优化。 那今天就带着大家聊一下静态化。把之前工作场景中静态化方案遇到的问题,以及如何演变的,分享给小伙伴。 ...

乔治大哥的博客 1714

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ASP网站静态化解决方案研究

最近无聊,写了个网站,网址是http://www.9ppk.com/,主要是做网页小图标打包下载的,方便前台设计er.写网站的时候连SEO是什么都不知道,只是因为学了点ASP知识,想来尝试尝试。网站写好了,可以是过了好久都没有人来访问,这才想起来到网上查查怎么做网站推广,于是才接触到SEO。SEO要做的事很多,于是一件一件的弄,可能我性子太急,总觉得做的没效果。于是下了狠心把网站静态化。都知道网站大规模改版,很容易被K站,我也关不了那么多了,反正被收录的网页也没几页。我写网站的时候使用的是界面与程序分离的模

我的9PPK 661

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

上一篇: 如何分析競爭對手網站
下一篇: 让Windows Server 2008+IIS 7+ASP.NET支持10万个同时请求
netbug2009
博客等级 码龄17年 21粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值