vcl常用配置

不缓存摸一个资源


在vcl_recv中
if (req.url ~ "private") {
return (pass);
}

动静分离


先定一个多个backend
backend defualt {
.host = "192.168.1.56";
.port = "80";
} backend websrv {
.host = "192.168.1.58";
.port = "80";
} 在vcl_recv中
if (rep.url ~ "\.php$") {
set req.backend_hint = websrv;
} else {
set req.backend_hint = default;
}

配置虚拟主机


在vcl_recv中配置
if (rep.http.host ~ "www.bux.com") {
set req.backend_hint = websrv;
} if (rep.http.host ~ "ftp.bux.com") {
set req.backend_hint = default;
}

此时缓存是否命中


在deliver中配置, deliver就是将Server(Cache 服务器, 就是varnish)的相应报文发送给客户端 // 如果命中
if (obj.hits > 0) {
set resp.http.Is-Hit = "Hit";
} else {
set resp.http.Is-Hit = "Miss";
}

将cookie绑定的私有缓存转为共有缓存


在vcl_backend_response中
if (beresp.http.cache-control !~ "s-maxage") { // s-maxage表示共有缓存, 此时报文应该没有Set-Cookie字段
if (bereq.url ~ "\.jpg$") { // 如果请求的是图片就将其定义公共缓存到缓存服务器上
beresp.ttl = 3500s;
unset beresp.http.Set-Cookie;
}
}

健康检测


backend websrv {
.host = "192.168.1.56";
.port = "80";
.probe = {
.url = "http://192.168.1.59/test.html";
}
}

配置拒绝请求


在vcl_recv中
if (req.http.host ~ "ftp.bux.com") {
return (synth(405));
}

生产中一定要配置purge(清理缓存), 但是只能是机房中的, 同时对于miss的应该返回error 405 "Not in cache", 因为miss就表示这该资源不在缓存中, 无法清理


acl purgers {
"127.0.0.1"/8;
"192.168.1.0/24";
} sub vcl_recv {
if (req.request == "PURGE") { // 客户端请求清理缓存
// 一定要有这个if, 防止其他主机随意修改
if (!client.ip ~ purgers) { // 如果不在acl中的主机请求清理则拒绝
return (pass);
}
return(purge);
}
} curl发送PURGE请求方法, curl -X PURGE url

搭建集群


import directors;
sub vcl_init {
new cluster1 = directors.round_robin();
cluster1.add_backend(websrv1);
cluster1.add_backend(websrv2);
} sub vcl_recv {
set req.backend_hint = cluster1.backend();
}

VCL的更多相关文章

  1. DevExpress VCL v16.1.3发布

    ExpressPDFViewer # BC3840:包含action标题和action提示的 Action classes 和 resource strings 重命名: class名称末尾中包含'A ...

  2. 转:看看 Delphi XE2 为 VCL 提供的 14 种样式

    http://www.linuxso.com/linuxbiancheng/8889.html 其实只提供了 个 vsf 样式文件, 还有默认的 Windows 样式, 共 种. 在空白窗体上添加 L ...

  3. Delphi:与VCL同步(Synchronize()、用消息来同步)

    看本文时,可以同时参考:Delphi中线程类 TThread实现多线程编程(事件.临界区.Synchronize.WaitFor……) 先说一下RTL和VCL RTL(Run-Time library ...

  4. varnish4.1 配置文件default.vcl

    varnish4.1 配置文件default.vcl # This .x VCL file vcl 4.0; backend default { .host = "127.0.0.1&quo ...

  5. 【温故Delphi】之VCL消息机制小结

    TObject消息分派 procedure Dispatch(var Message); virtual; #负责分派消息到特定VCL组件的事件处理函数 procedure DefaultHandle ...

  6. DevExpress VCL 13.1.4支持Delphi /C++Builder XE5

    DevExpress VCL 13.1.4支持Delphi /C++Builder XE5 重大变化 ExpressLibrary dxHalfOfPi常数声明已经从cxGeometry单元移到了cx ...

  7. Devexpress VCL Build v2014 vol 15.2.3 发布

    2016年第一个版本,继续修补. New Major Features in 15.2 What's New in VCL Products 15.2 Breaking Changes To lear ...

  8. Devexpress VCL Build v2015 vol 15.2 开始测试

    增加了几个小玩意,与大版本变化根本无法匹配. 具体可以官网了解 https://www.devexpress.com/Subscriptions/New-2015.xml?product=vcl

  9. Delphi的VCL组件库

    Visual Component Library的缩写(可视组件库)VCL是Visual Component Library的缩写,即可视组件库,它是Delphi,C++Builder等编程语言的基本 ...

  10. 在XE5中 VCL空窗体的3个线程

    中午看到技术群里有人讨论, XE5一个空窗体程序就包含了3个线程, 赶忙打开XE5开了个空窗体一看, 果然如此 再打开D7和2010看了一下, 都是一个线程 这时看到有人说一个是输入法, 一个是GDI ...

随机推荐

  1. jmeter 阶梯式加压测试

    性能测试中,有时需要模拟一种实际生产中经常出现的情况,即:从某个值开始不断增加压力,直至达到某个值,然后持续运行一段时间. 在jmeter中,有这样一个插件,可以帮我们实现这个功能,这个插件就是:St ...

  2. (Delphi)第一个Windows 32 API的窗口程序

    program Project1; uses Winapi.Windows, Winapi.messages; {$R *.res} const className = 'MyDelphiWindow ...

  3. [haut] 1281: 邪能炸弹 dp

    题目描述 正在入侵艾泽拉斯的古尔丹偶然间得到了一颗邪能炸弹,经过研究,他发现这是一颗威力极其巨大且难以控制的炸弹.但是精通邪能的古尔丹突然有了一个大胆的想法,他对炸弹进行了一些小小的改造.这使得炸弹需 ...

  4. loj #2006. 「SCOI2015」小凸玩矩阵

    #2006. 「SCOI2015」小凸玩矩阵   题目描述 小凸和小方是好朋友,小方给小凸一个 N×M N \times MN×M(N≤M N \leq MN≤M)的矩阵 A AA,要求小凸从其中选出 ...

  5. Node JS爬虫:爬取瀑布流网页高清图

    原文链接:Node JS爬虫:爬取瀑布流网页高清图 静态为主的网页往往用get方法就能获取页面所有内容.动态网页即异步请求数据的网页则需要用浏览器加载完成后再进行抓取.本文介绍了如何连续爬取瀑布流网页 ...

  6. 验证码(captcha)的由来

    如果您允许用户在您的网站上发表内容,如留下评论和创建用户配置文件,那么您可能会看到,垃圾留言散播者试图利用这些渠道来给他们自己的网站创造流量.在您的网站上出现这类垃圾留言,对任何人来说都不愉快.用户可 ...

  7. 2019.2.25考试T1, 矩阵快速幂加速递推+单位根反演(容斥)

    \(\color{#0066ff}{题解}\) 然后a,b,c通过矩阵加速即可 为什么1出现偶数次3没出现的贡献是上面画绿线的部分呢? 考虑暴力统计这部分贡献,答案为\(\begin{aligned} ...

  8. arcgis10.0直连sde

  9. Tensorflow实践

    确定文件的编码格式 # -*- coding : utf-8 -*- 引入tensorflow库 import tensorflow as tf 定义常量 hw=tf.contant("he ...

  10. Xcode上传appstore 出现 Found an unexpected Mach-O header code: 0x72613c21 错误

    网上说是静态库的问题