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. 简单的linux service(linux服务)编写,运行示例

    1.写一个简单小程序 #include<stdio.h> #include<stdlib.h> int main(int argc,char **argv) { while(1 ...

  2. 四步走查智能硬件异常Case

    此文已由作者于真真授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 相比于软件,智能硬件产品由于涉及硬件和软件两个端的状态,其异常case要更加错综复杂.由于硬件产品的迭代更新 ...

  3. 温故而知新_C语言_递归

    递归. 是的,差不多就是这种感觉.上面就是类似递归的显示表现. 2017 10 24更新: 递归这个问题放了很久.也没有写.大概是自己还没有好好理解吧. 在这里写下自己理解的全部. 一 何为递归. 字 ...

  4. SpringAOP使用

    AspectJ 注解: 1.@Aspect.@Pointcut.Advice @Aspect @Component public class SecurityAspect { @Autowired A ...

  5. 【转】HTTP协议/IIS 原理及ASP.NET运行机制浅析【图解】

    源地址:http://blog.csdn.net/chelen_jak/article/details/50040537

  6. Python循环加强版——列表生成式

    记得我们在其他语言中都学到过循环,尤其是对for循环是再熟悉不过了 比如我有一个数组  a[10]={1,2,3,4,5,6,7,8,9,10} 下面需要依次循环打印出来,C语言首先想到的是 for( ...

  7. 3、OpenCV Python 色彩空间

    __author__ = "WSX" import cv2 as cv import numpy as np def color_space( img ): gray_img = ...

  8. P4219 [BJOI2014]大融合 LCT维护子树大小

    \(\color{#0066ff}{ 题目描述 }\) 小强要在\(N\)个孤立的星球上建立起一套通信系统.这套通信系统就是连接\(N\)个点的一个树. 这个树的边是一条一条添加上去的.在某个时刻,一 ...

  9. Windows Server上用命令来起停IIS站点

    平时,在Server上管理IIS,都是在界面上进行一些配置,然后再做一些start和stop操作... 对于配置的人来说,会做一些重复步骤,所以适当的使用命令,能大大提高效率. 下面命令是自己之前使用 ...

  10. 【转】JavaScript里Function函数实现可变参数

    转载:  http://www.oschina.net/question/54100_15938 使用javascript类库函数时,经常会遇到一个函数,可以使用不同个数的参数的情况 比如:exp(v ...