SERVICE


云启未来,智造互联
企业上云升级,助力企业腾飞

动态网站静态速度:网站缓存的艺术

发布时间:2016-12-15 13:28:22您的位置: > 微信开发,小程序开发 > 正文

很多最近说静态网站的优点。但在很多情况下使用一个动态就是必需的。是否一个内容管理系统,客户关系的工具,或在线商店,他们允许终端用户维护复杂的网站迅速和持续。正确放在一起时,他们可以竞争的静态网站的速度。
任何应用程序需要经常读写的数据将导致明显的延迟
无论你用的是什么系统,动态站点通常组成相似的元素。这些web服务器的一种形式,一个后端应用程序,用一个或多个编程语言编写的。这种组合的组件给大量的灵活性,但每个贡献自己的开销,提高加载时,所有现代web站点想要避免的东西。与数据库访问尤其如此;任何应用程序需要经常读写的数据将导致明显的延迟。
这在缓存和一个适合您的用例将帮助的缓存策略。缓存的基本目的是为了防止不必要的频繁的应用程序数据库层之间的调用和使用预生成的静态HTML页面,而是在浏览器中呈现的要快得多。
浏览器缓存
第一缓存任何web用户会注意到在他们的浏览器缓存。有多少次开发人员要求你进行“force-refresh”看到变化了吗?浏览器缓存是简单但goodstarting点开始解释缓存概念。浏览器网页访问的存储表示在用户的计算机上,通常更新他们每次会话如果检测到变化或强制的网站。
代理缓存
常见工具受雇于网站所有者和管理员是一个反向代理缓存的页面请求之间,由一个web浏览器和web应用程序。它拦截请求和渲染页面直接从缓存的副本,因此提供了一个明显的速度提升。
有几个主要的代理缓存选项可供self-install或作为“软件即服务”。(我们忽略了云托管提供商通常你可能需要的一切打包成一个独立的web堆栈。)
流行的代理缓存选项包括:
清漆(见下图);
鱿鱼;
Nginx(结合web服务器和代理缓存)。
SaaS选项缓存一般躺在世界的内容分发网络(cdn),而不是把用户和web堆栈之间的缓存,服务用户的缓存内容,地理上最亲近的人。这是一个微妙的差异,但对于大型网站与全球观众可以显著差异。
USINGVARNISH
清漆可用在所有Linux软件包管理器,码头工人形象和许多其他的选择,读了吗项目的安装页面为更多的细节。
基本的清漆配置
在/usr/local/etc/varnish/default.清漆商店一个默认的配置文件vcl或/etc/varnish/default.vcl,写在VCL(清漆配置语言)。这个配置文件被编译成一个小程序通过C解释器来提高速度。
这取决于你怎么安装清漆,配置文件会看起来像这样:
backend default {
.host = “127.0.0.1”;
.port = “8000”;
}
最简单的,它定义了默认端使用清漆,定义的主机和端口应该倾听和拦截内容。
后端轮询
清漆的一个方便特性是按照预定义的时间间隔检查如果后端仍然是健康的。叫做“端轮询”,通过添加一个配置探头部分为后端声明:
.probe = {
.url = ‘/’;
.timeout = 34ms;
.interval = 1s;
.window = 10;
.threshold = 8;
}
以上提供的默认设置是清漆,告诉它访问一个特定的。urlevery .interval如果至少。阈值的。窗口探头,url内响应。超时毫秒,后端仍被认为是健康的。曾被认为是“不健康”,内容从缓存中提供一个预定义的时期。
开始清漆
我们将讨论具体的更改清漆配置在每个平台的选择,现在让我们来看看在通用选项。
港口
一开始您的web服务器的端口需要修改默认。例如Vhost在Apache配置端口改为81年或8080年。
开始与varnishcommand清漆守护进程或使用服务包装器。守护进程标记选项,最常见和有用的:
– f:设置配置文件的路径。
s:缓存存储选项。设置内存将提供更大的速度增加。
检查所有工作
运行varnishstat命令或访问isvarnishworking.com检查你的清漆服务器已经准备好了,听请求。
不缓存
有某些部分的一个网站,我们不想缓存,例如管理页面。我们可以排除他们将调用vcl_recv子例程通过创建一个默认的。vcl文件包含一个if语句定义了缓存:
sub vcl_recv {
# URI of admin folder
if (req.url ~ “^/url/”)
{
return (pass);
}
return(lookup);
}
如果您正在使用清漆4,略有不同,包括返回值。现在将调用vcl_recv函数的返回ahash值而不是一个查找。
sub vcl_recv {

return(hash);
}
这也是我们网站或子域,通过添加req.http清漆应该忽略。主机~ ‘ example.com ‘ if语句。
饼干
默认情况下清漆不会从后端设置cookie缓存内容。同样,如果客户端发送cookie,它将直接绕过清漆后端。
饼干经常使用的网站来跟踪用户活动和存储用户特定的值。通常这些饼干只是感兴趣的客户端代码和不感兴趣的后端或清漆。我们可以告诉清漆忽略饼干,除了在特定地区的站点:
if ( !( req.url ~ ^/admin/) ) {
unset req.http.Cookie;
}
如果声明忽视了饼干,除非我们在网站的管理区域,cookie传递可能会更多的使用(除非你真的想阻挠站点管理员)。
其他异常
默认安装,漆也不缓存密码保护页面,GET和HEAD请求。
把清漆使用
现在我们将看两个完美的用例清漆:Drupal和线上购物。两者都是高度动态systemsthat允许非技术用户进行各种复杂的任务。这可能会导致数据库query-heavy页面加载和繁忙的站点会明显放缓。典型的页面用这些系统将有一个混合物的内容很少,经常更新。
Drupal
Drupal已完成类似功能的默认缓存选项清漆,但不会提供所需的灵活性和速度增加更大或更复杂的网站。
在真正的有一个Drupal方式模块处理清漆集成节省一些上述手动配置。
安装模块,确保您按照安装说明包含在模块的阅读我的文件。
确保/etc/default/varnish文件有以下守护进程选项设置(和缩进是很重要的):
DAEMON_OPTS=”-a :80
-T localhost:6082
-f /etc/varnish/default.vcl
-S /etc/varnish/secret
-s file,/var/lib/varnish/$INSTANCE/varnish_storage.bin,128M”
确保Apache和任何相关的虚拟主机监听端口8080,而不是80年。重启后两个服务使这些变化。
您可能需要设置一个“清漆控制键”模块配置页面。找出关键与猫/etc/varnish/secret命令并粘贴到设置页面。选择正确的清漆版本,保存设置,您应该会看到一系列绿色蜱虫在页面的底部。
清漆Drupal模块与默认的缓存设置,所以确保你有启用和配置为您的用例。
从命令行运行varnishstat,开始作为一个匿名用户浏览网站,你应该看到stats命令输出的变化。
缓存的路径之一,我们不想在Drupal管理页面,将调用vcl_recv子路径:我们可以这样做
sub vcl_recv {
# URI of admin folder
if (req.url ~ “^/admin/”)
{
return (pass);
}
unset req.http.Cookie;
return(lookup);
}
你可能要考虑不缓存用户页面(登录),系统更新页面和其他页面生成的高度动态模块,如国旗使大量使用ajax功能。通过添加进一步要求这样做。urlparameters if语句。
线上购物
默认安装的线上购物附带一个内部缓存系统,静态版本的网站元素存储在指定的文件夹中。缓存管理系统- >页面提供缓存现状的概述以及让你清楚所有或单个组件缓存。你可以清晰的聚合的CSS和javascript文件,从这个页面自动生成的图像文件。
即将到来的版本2的线上购物将支持清漆缓存默认情况下,但是现在我们需要使用第三方插件,我推荐松节油模块。确保你读了项目的自述文件指出一些额外的配置步骤,忽视他们可能会破坏你的网站。
松节油的模块是高度可配置的,并将必要的更改vcl文件和清漆为你配置。一些关键选项设置:
后端主机:清漆主机,默认为127.0.0.1
后端端口:港口清漆上运行,默认为80
网址黑名单:URL的列表没有缓存相对于线上购物根。管理和API包括自动url。
松节油模块关系到默认缓存线上购物,所以清理缓存清漆缓存页面将明确相关的清漆缓存。
一般建议
除了使用清漆和上面的动态系统,这里有一些其他的杂项技巧,将有助于cache-ability任何网站。
一致的url
如果你是提供相同的内容在不同的上下文中,它应该使用相同的URL。例如不要混合使用条。html,文章。htm和文章,尽管你的CMS可能允许它。这将导致三种不同的缓存版本相同的内容。
使用cookie很少
正如我们以上所见,饼干很难缓存和很少像我们认为必要。试图限制他们的使用和数量动态页面。
文件处理
加载站点资产可以是最耗时的部分页面呈现和简单的技巧来减少这种负担:
使用CSS图片精灵形象,而不是多个小文件导致更少的网络流量。
托管CSS和JavaScript库在本地意味着更少的网络流量和更多的控制缓存策略。这可能意味着维护开销的增加使这些资产。存储这些资产在持续命名文件夹引用也可以是一致的。

梦之网科技 http://www.mzwkj.com

梦之网科技
本文网址:http://www.mzwkj.com/news/791.html

济南梦之网科技:济南网站建设,济南网站设计公司,网站建设开发公司,专业网站制作公司,拥有专业的技术团队,一流的服务团队.专业团队为您提供网站设计,网站定制服务,公众号应用开发,微信小程序开发,为用户提供成套解决方案,智能农业物联网系统

您可能感兴趣