秀米云香港服务器

varnish3.0之前的版本是根据客户端是否支持gzip,从后端获取压缩或未压缩的内容。如果不在vcl_hash中进行单独设置,还会导致发送给不支持压缩的客户端压缩过的数据,导致乱码。而这次3.0改进后已经完全支持压缩,并根据客户端自动进行解压。

varnish3.0下载地址https://www.varnish-cache.org/releases/varnish-cache-3.0.0

序列号 CPU RAM HDD 带宽 售价(美元) 免费试用
香港服务器1 E5-2620 32G 1T HDD 50M/无限流量 $196.00 立即申请
香港服务器2 E5-2650 32G 1T HDD 50M/无限流量 $256.00 立即申请
香港服务器3 E5-2680 32G 1T HDD 50M/无限流量 $316.00 立即申请
香港服务器4 E5-2690 32G 1T HDD 50M/无限流量 $336.00 立即申请
香港服务器5 E5-2697 32G 1T HDD 50M/无限流量 $376.00 立即申请
香港服务器6 E5-2620*2 32G 1T HDD 50M/无限流量 $376.00 立即申请
香港服务器7 E5-2650*2 32G 1T HDD 50M/无限流量 $436.00 立即申请
香港服务器8 E5-2680*2 32G 1T HDD 50M/无限流量 $476.00 立即申请
香港服务器9 E5-2690*2 32G 1T HDD 50M/无限流量 $556.00 立即申请
香港服务器10 E5-2697*2 32G 1T HDD 50M/无限流量 $596.00 立即申请
香港服务器11 E5-2680v4*2 32G 1T HDD 50M/无限流量 $696.00 立即申请
香港服务器12 E5-2698v4*2 32G 1T HDD 50M/无限流量 $796.00 立即申请

先看下日志记录1 未经过varnish代理的页面访问支持压缩

192.168.56.1--[12/Jul/2011:19:13:54+0800]"GET/HTTP/1.1"20098"-""Mozilla/5.0(WindowsNT5.1;rv:5.0)Gecko/20100101Firefox/5.0""-"用curl模拟不支持压缩192.168.56.1--[12/Jul/2011:19:15:03+0800]"GET/HTTP/1.1"2001338"-""curl/7.21.6(i386-pc-win32)libcurl/7.21.6OpenSSL/0.9.8qzlib/1.2.5""-"可以看到获取的内容长度分别是98Bytes和1338Bytes

2 经过varnish代理后的后端访问支持压缩

127.0.0.1--[12/Jul/2011:19:18:23+0800]"GET/HTTP/1.1"20098"-""Mozilla/5.0(WindowsNT5.1;rv:5.0)Gecko/20100101Firefox/5.0""192.168.56.1"用curl模拟不支持压缩127.0.0.1--[12/Jul/2011:19:19:52+0800]"GET/HTTP/1.1"20098"-""curl/7.21.6(i386-pc-win32)libcurl/7.21.6OpenSSL/0.9.8qzlib/1.2.5""192.168.56.1"这次看到返回的内容长度都是98Bytes

varnishlog中的请求内容如下

12TxHeaderbUser-Agent:curl/7.21.6(i386-pc-win32)libcurl/7.21.6OpenSSL/0.9.8qzlib/1.2.5...12TxHeaderbAccept:*/*...12TxHeaderbAccept-Encoding:gzip

而curl发送请求时,header中是不包括“Accept-Encoding:gzip”的。所以,当varnish请求后端时会自动为不支持gzip的客户端增加“Accept-Encoding:gzip”,同时在varnish发送给客户端时再进行解压缩:

11TxHeadercServer:nginx...11TxHeadercTransfer-Encoding:chunked...11GzipcUD-8713388080632U D 87 1338 80 80 632U代表Gunzip,解压文件D代表Deliver,分发内容详细gzip日志说明见https://www.varnish-cache.org/docs/trunk/reference/vsl.html#gzip-records同时从访问日志中看到,这次更新已经默认支持Transfer-Encoding: chunked方式。

另外varnish配置文件中的vcl_hash方法也做了语法变更,直接使用hash_data即可:

subvcl_hash{hash_data(req.url);if(req.http.host){hash_data(req.http.host);}else{hash_data(server.ip);}}

标题:Varnish3.0中配置gzip压缩

地址: https://www.yunhk.xyz/26447.html