首先,说说Varnish的配置方法。 Varnish的启动需要配置文件(*.vcl),以及其他一些启动参数配合(具体参数在此略去不谈,man一下会看到一切)。我安装的是Varnish-2.0.4 整个安装过程如下: #./configure –prefix=/usr/local/varnish –enable-developer-waring –enable-debugging-sybmbles –enable-werror #make #make install 编译安装完成,然后就需要启动它,我写的启动文件如下: ###Start.sh###### #!/bin/sh #file:start.sh date -u /usr/local/varnish/sbin/varnishd -a 173.26.100.206:80 -s file,/cache/varnish/V,1024m -f /usr/local/varnish/etc/varnish/default.vcl -p thread_pool_max=1500 -p thread_pools=5 -p listen_depth=512 -p client_http11=on -p connect_timeout = 1s -p send_timeout = 20s 以下是deault.vcl配置 ######defualt.vcl######## backend default { .host = “173.26.100.206″; .port = “81″; } #Below is a commented-out copy of the default VCL logic. If you #redefine any of these subroutines, the built-in logic will be #appended to your code. sub vcl_recv { 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_pipe { # Note that only the first request to the backend will have # X-Forwarded-For set. If you use X-Forwarded-For and want to # have it set for all requests, make sure to have: # set req.http.connection = “close”; # here. It is not set by default as it might break some broken web # applications, like IIS with NTLM authentication. return (pipe); } sub vcl_pass { return (pass); } sub vcl_hash { set req.hash += req.url; if (req.http.host) { set req.hash += req.http.host; } else { set req.hash += server.ip; } return (hash); } sub vcl_hit { if (!obj.cacheable) { return (pass); } return (deliver); } sub vcl_miss { return (fetch); } sub vcl_fetch { if (!obj.cacheable) { return (pass); } if (obj.http.Set-Cookie) { return (pass); } set obj.prefetch = -30s; return (deliver); } sub vcl_deliver { return (deliver); } sub vcl_discard { /* XXX: Do not redefine vcl_discard{}, it is not yet supported */ return (discard); } sub vcl_prefetch { /* XXX: Do not redefine vcl_prefetch{}, it is not yet supported */ return (fetch); } sub vcl_timeout { /* XXX: Do not redefine vcl_timeout{}, it is not yet supported */ return (discard); } sub vcl_error { set obj.http.Content-Type = “text/html; charset=utf-8″; synthetic {” "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> Error “} obj.status ” ” obj.response {” “} obj.response {” Guru Meditation: XID: “} req.xid {” Varnish “}; return (deliver); } 如此配置,运行./Start.sh启动Varnish监听本机80端口,backend为Apache监听的81端口。问题出现了,通过81端口访问,正常响应,浏览器获得正确页面;访问81端口,出现503 error。 对于这个问题在网上搜了很多方法试图解决,比较多的办法是在配置文件里修改添加 backend default { .host = “173.26.100.206″; .port = “81″; ###下面三行为新加配置 .connect_timeout = 1s; .first_byte_timeout = 5s; .between_bytes_timeout = 2s; } 事实上并不奏效,自己摸索良久,偶然将start.sh中一些启动选项去掉,结果发现可以正常响应了。 新的启动文件如下: ####Start.sh##### #!/bin/sh #file:start.sh date -u /usr/local/varnish/sbin/varnishd -a 173.26.100.206:80 -s file,/cache/varnish/V,1024m -f /usr/local/varnish/etc/varnish/default.vcl -p thread_pool_max=1500 -p thread_pools=5 -p listen_depth=512 -p client_http11=on 去掉了connect_timeout和send_timeout,相当于使用系统默认配置。 结果一切归于正常,Varnish又一次表现出高速的http代理能力。 |
相关推荐
Linux Varnish 配置详解 Varnish 是一款高性能的开源HTTP缓存和代理服务器,主要用于提升网站的响应速度和处理能力。它通过缓存静态内容和动态内容的副本,减少对后端服务器的请求,从而提高了整体的Web性能。在...
教程名称: Varnish配置教程和学习资料合集【】HTTP加速器varnish安装部署【】varnish cache 配置使用ChinaUnix【】varnish 原理【】Varnish-vcl的配置【】varnish配置实例 资源太大,传百度网盘了,链接在附件中,...
Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang 使用3台Varnish代替了原来的12台Squid,性能比以前更好。 本文档详细讲解了varnish的安装配置过程以及配置文件详解
nginx和php和varnish配置
下面我们将详细探讨如何配置Varnish与Lighttpd协同工作。 **一、Varnish简介** Varnish是一款HTTP加速器,它的主要功能是缓存静态内容,如HTML页面、图片和CSS文件等,从而减少对后端服务器的请求。Varnish通过使用...
### Varnish 2.1.2 安装与配置详解 #### Varnish简介 Varnish是一款高性能的HTTP应用层加速器,主要用于提高网站响应速度和承载能力。它通过将频繁访问的内容缓存在内存中来减少后端服务器的压力,并能够作为反向...
以下是对Varnish配置过程的详细说明: 首先,为了准备安装Varnish,你需要确保系统中安装了必要的依赖库。在描述中,可以看到需要执行的yum命令,包括automake、autoconf、libtool、ncurses-devel、libxslt、groff...
### Varnish 3.0.5 的安装与配置 #### 一、Varnish简介 Varnish是一款高性能的HTTP应用加速器,主要用于网站缓存以提高网站访问速度及服务器响应性能。它通过将频繁访问的数据缓存到内存中,从而减少后端服务器的...
安装完成后,用户需要配置Varnish,使之能够正确地作为Web服务器的前端缓存。 Varnish的配置文件通常位于/etc/varnish目录下,或者由用户指定的其他目录。配置文件一般以.vcl作为后缀,其中包括了缓存的策略、缓存...
6. 故障排查:掌握Varnish的日志分析技巧,以便快速定位和解决问题。 “LinuxIDC.com.png”可能是一个示例网站的截图,用于说明Varnish在实际部署中的界面或效果。“教程重要说明.txt”可能是作者或编者提供的学习...
既然Varnish需要在多台服务器上缓存数据,...该块配置用于定义一台Varnish默认访问的后端服务器,当Varnish需要从后端服务器获取数据时,就会访问自己的80端口。 当然Varnish也可以定义多台后端服务器实现负载均衡的目
在压缩包文件"varnish-6.2.0"中,可能包含了Varnish的源代码、编译脚本、配置文件示例、文档和测试案例等。用户可以按照官方提供的安装指南,编译并安装Varnish 6.2.0,然后根据自己的需求配置VCL,将Varnish集成到...
Varnish是一款高性能的HTTP缓存...总结起来,Varnish是一个强大的HTTP缓存解决方案,通过VCL配置可以实现高效、灵活的缓存策略,优化网站性能,降低服务器压力。正确安装和配置Varnish是提升Web应用性能的关键步骤。
《高命中率的Varnish缓存配置详解》 Varnish是一款高性能的HTTP反向代理缓存服务器,它能够显著提升网站的响应速度和并发处理能力。在本文中,我们将深入探讨如何配置Varnish以实现高命中率的缓存策略,从而提高...
以下是关于Varnish 3.0.2的安装配置步骤以及关键配置选项的详细解释: ### 安装步骤: 1. 首先,从官方仓库下载Varnish源代码包,例如这里使用的是`varnish-3.0.2.tar.gz`。 2. 解压缩下载的源代码包:`tar zxvf ...