varnish基本配置(二)
具体的实例,假设我们有一个网站www.example.com, 需要增加varnish,来提升性能。
http header头信息中的 Cache-Control: s-maxage 参数可以设置页面在varnish中缓存的时间
nginx配置:
listen 80
server_name www.example.com;
location / {
proxy_pass http://127.0.0.1:800; #反向代理到varnish
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 8080;
server_name www.example.com;
root /var/www/example;
}
example.vcl配置:
.host = "127.0.0.1";
.port = "8080";
.connect_timeout = 5s;
.first_byte_timeout = 5s;
.between_bytes_timeout = 5s;
}
sub vcl_recv {
set req.backend=default;
if (req.restarts == 0) {
if (req.http.x-forwarded-for) {
set req.http.X-Forwarded-For =
req.http.X-Forwarded-For + ", " + client.ip;
} else {
set req.http.X-Forwarded-For = client.ip;
}
}
if (req.request != "GET" &&
req.request != "HEAD" &&
req.request != "PUT" &&
req.request != "POST" &&
req.request != "TRACE" &&
req.request != "OPTIONS" &&
req.request != "DELETE") {
/* Non-RFC2616 or CONNECT which is weird. */
return (pipe);
}
if (req.request != "GET" && req.request != "HEAD") {
/* We only deal with GET and HEAD by default */
return (pass);
}
if (req.http.Authorization || req.http.Cookie) {
/* Not cacheable by default */
return (pass);
}
return (lookup);
}
sub vcl_hit {
#只要页面刷新(F5、CTRL+F5),页面的varnish cache均失效
if(req.http.Cache-Control~"no-cache"||req.http.Cache-Control~"max-age=0"||req.http.Pragma~"no-cache"){
set obj.ttl=0s;
return (restart);
}
return (deliver);
}
sub vcl_deliver {
set resp.http.x-hits=obj.hits;
if(obj.hits>0){
set resp.http.X-Cache="hit";
}
else{
set resp.http.X-Cache="MISS";
}
return (deliver);
}
sub vcl_fetch {
if (!beresp.cacheable) {
return (pass);
}
if (beresp.http.Set-Cookie) {
return (pass);
}
#if(beresp.http.Pragma~"no-cache"||beresp.http.Cache-Control~"no-cache"||beresp.http.Cache-Control~"private"){
# return (pass);
# }
if(req.request=="GET"&&req.http.host~"bbs.xiazh.dev.aifang.com$"){
set beresp.ttl=1200s;
}
if(req.request=="GET" && req.url~"\.(png|swf|txt|jpg|css|js|html|htm)$"){
set beresp.ttl=3600s;
}
return (deliver);
}
varnish基本配置(二)相关推荐
- ros开发增加clion常用模板及初始化配置(二)
ros开发增加clion常用模板及初始化配置(二) 在需要共享的文件夹内用控制台运行这个命令开启服务器,共享自己的文件,局域网电脑游览器登入这台电脑的ip加8000端口号即可访问 python -m ...
- windows10怎么配置二个或多个JDK版本_详细图解
本示例,一台windows10电脑安装JDK1.7和JDK1.8二个版本 基础条件:安装好JDK1.7和JDK1.8 windows10怎么配置二个或多个JDK不同版本的步骤,如下: 第一步:配置ja ...
- 区块链教程Fabric1.0源代码分析配置交易-生成通道配置二
兄弟连区块链教程Fabric1.0源代码分析配置交易-生成通道配置二.Generator接口实现,即bootstrapper. type bootstrapper struct {channelGro ...
- Hexo的个性化配置(二)
Hexo的个性化配置(二) 接上一篇的Hexo的个性化配置,都是一些提高网站个性化的配置,只是搭建一个简单的Hexo的网站的话,查看Hexo的使用就行.可能写的比较啰嗦,详细还是很详细的,也是自己就出 ...
- CHAPTER 3 Web Server - httpd配置(二)
Web Server - httpd配置二 3.1 httpd配置 3.1.1 基于用户的访问控制 3.1.2 basic认证配置示例 1. 添加用户 2. 添加网页文件 3. 定义安全域 4. 修改 ...
- 高性能缓存服务器Varnish架构配置
Varnish跟Squid都是一款内容加速缓存服务器,我们可以使用它们来对我们的网页内容进行缓存,以此来从某个方面提高用户体验度,提升网站整体的抗压能力. 目前自建的CDN中,有很多都是基于Squid ...
- 九、数据库群集部署、配置 (二)
九. 数据库群集部署.配置(二) 配置DTC 角色高可用 在群集管理器对话框,选择"配置角色",如图 2. 选择"下一步",如图 3. 在选择角色对话框,选 ...
- vCenter6.0配置二:配置HA群集
本文主要介绍HA群集的创建,主要有以下要求:1.每台宿主机具有冗余的网络连接,因此最好要有2块物理网卡,前文在介绍配置分布式交换机时已经满足.2.每台宿主机具有冗余的共享存储,因此最好要添加2块共享磁 ...
- IDEA9+Tomcat热部署配置二法
IDEA9+Tomcat热部署配置 idea9的web开发配置方式与之前的版本发生了大的变化,idea其实也可以像MyEclipse一样自动热部署,不过配置稍微麻烦了一些. 环境: Idea9.03 ...
最新文章
- sql查询远程数据库的表的数据并填充到本地数据库的表
- php5.5 php5.6,php 5.5 5.6的区别有哪些
- go语言笔记——数组长度不可变,但是元素值是可变的!!!
- HTML DOM Event 对象
- 收藏:发展之道:简单与专注
- Mediator(中介者)--对象行为型模式
- mysql事务处理什么意思_mysql事务是什么意思
- linux3.3内核去哪下载,Linux Kernel下载|Linux Kernel v3.18.3 稳定版 - 121下载站
- 解决 LaTeX Error: File `.sty‘ not found.,直接进行本地导入就好了,暂时解决而已
- 移植性问题のLPTSTR、LPCSTR、LPCTSTR、LPSTR之间的转换 转
- 单片机0 99c语言程序,单片机C语言程序设计实训99例.doc
- SanDisk U盘加密软件 在其他u盘使用
- 第四章_思科ASDM网管系统搭建(java环境,jdk环境)
- “踢爆”职场焦虑、玩机车、文科转大厂程序媛,乘风破浪的 IT 女神太飒了!
- 台式机插耳机没反应没声音
- C/C++ __builtin 超实用位运算函数总结
- 物联网导论-EPC系统
- 西门子P L C 1200与smart的S 7通讯
- Visual Studio 2013 不小心关掉“解决方案资源管理器”怎么办?
- Opencv-图像ROI与ROI操作