版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://iyubo.blogbus.com/logs/35085709.html
此日志会随时更新,当然,是随着我的应用积累:)
实现静态文件压缩
Varnish itself does not compress or decompress objects, although that has been on our wish list for quite a while. However, it will operate correctly with backends that support compression.
从官方网站可以得知,Varnish本身并不能提供压缩的功能,但是我们又想要使用压缩,该怎么处理呢?(有关压缩的方面可以参考官方网站http://varnish.projects.linpro.no/wiki/FAQ/Compression)
在vcl_recv中加入如下配置,为Varnish指定压缩算法,提高效率。(Even though there are few possible values for Accept-Encoding, Varnish treats them literally rather than semantically, so even a small difference which makes no difference to the backend can reduce cache efficiency by making Varnish cache too many different versions of an object.)
if (req.http.Accept-Encoding) {
if (req.url ~ "\.(jpg|png|gif|gz|tgz|bz2|tbz|mp3|ogg)$") {
# No point in compressing these
remove req.http.Accept-Encoding;
} else if (req.http.Accept-Encoding ~ "gzip") {
set req.http.Accept-Encoding = "gzip";
} else if (req.http.Accept-Encoding ~ "deflate") {
set req.http.Accept-Encoding = "deflate";
} else {
# unkown algorithm
remove req.http.Accept-Encoding;
}
}
在vcl_hash中
sub vcl_hash {
set req.hash += req.url;
if (req.http.Accept-Encoding ~ "gzip") {
set req.hash += "gzip";
}
else if (req.http.Accept-Encoding ~ "deflate") {
set req.hash += "deflate";
}
hash;
}
这样就把压缩的工作还是交给后端服务器去做
添加一个Header标识是否命中
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT";
} else {
set resp.http.X-Cache = "MISS";
}
}
对特定URL进行IP访问限制
如果我们对某些特定的URL只想某些IP能访问,又该怎么办呢?
首先定义允许访问的IP列表
acl permit {
"10.1.1.5";
"10.0.2.5";
"10.10.1.3";
}
然后是针对URL进行访问控制
if (req.url ~ "/test/.*" && !client.ip ~ permit) {
error 403 "Not Allowed.";
}
对特定URL不缓存
sub vcl_fetch {
if (req.request == "GET" && req.url ~ "/test/.*") {
set obj.ttl = 0s;
}
else {
set obj.ttl = 1800s;
}
#set obj.http.X-Varnish-IP = server.ip;
set obj.http.Varnish = "Tested by Kevin";
insert;
}
清除指定缓存内容
我们可以通过varnishadm这个命令从管理端口进行指定缓存的清除
/usr/varnish/bin/varnishadm -T 127.0.0.1:3500 url.purge /test/*
/usr/varnish/bin/varnishadm -T 127.0.0.1:3500 url.purge *$ (清除所有缓存)
相关推荐
安装并配置好Varnish后,可以使用以下命令启动和停止服务: ```bash sudo systemctl start varnish sudo systemctl enable varnish sudo systemctl status varnish sudo systemctl stop varnish ``` 四、监控与...
下面将详细介绍Varnish的原理、功能以及如何安装和使用3.0.7版本。 **Varnish基础概念** Varnish是一个开源的反向代理服务器,它的主要作用是接收HTTP请求,并根据预设的策略缓存网页内容。当后续的请求相同内容时...
根据提供的文件信息,以下是关于“Varnish测试报告”的详细知识点总结: ### Varnish缓存系统概述 Varnish是一款高性能的HTTP反向代理服务器和缓存服务器,常用于Web应用的加速。它能够将静态内容缓存在内存中,并...
#### 四、总结 通过上述介绍,我们了解了VCL的基本概念、后端配置、负载均衡策略、健康检查方法以及访问控制列表的应用。VCL的强大之处在于它能够高度定制化地管理缓存和负载均衡逻辑,从而有效提升Web应用的性能和...
总结来说,代理服务器在现代网络环境中扮演着重要的角色,而Squid、Varnish和ATS作为代理缓存服务器的代表,各有其优缺点。选择合适的代理缓存服务器软件应考虑实际应用场景的需求,以及服务器的性能和稳定性。对于...
总结来说,Varnish作为一个强大的HTTP缓存加速器,通过优化的内存管理和高效的缓存策略,极大地提高了网站的响应速度。与Linux内核参数的调整、PHP环境的正确配置相结合,能够构建出一套高性能的Web服务系统。
总结来说,Varnish作为一个高性能的HTTP缓存加速器,通过与Nginx、PHP、MySQL等组件配合,可以构建出强大且响应迅速的服务器集群。优化内核参数、正确配置PHP和Nginx的FastCGI设置,以及充分利用Varnish的特性,都能...
#### 总结 通过以上步骤,我们可以成功搭建一个基于Varnish的CDN推送平台。此平台不仅可以显著提升网站的访问速度,还能有效减轻源服务器的压力,提高系统的稳定性和可用性。此外,还可以根据业务需求进行更多的...
Varnish是一款高性能的HTTP缓存...总结起来,Varnish是一个强大的HTTP缓存解决方案,通过VCL配置可以实现高效、灵活的缓存策略,优化网站性能,降低服务器压力。正确安装和配置Varnish是提升Web应用性能的关键步骤。
配置Varnish时,通常会将Tomcat作为后端服务器,Varnish接收用户请求,缓存可重复使用的资源,并将动态请求转发给Tomcat处理。 【总结】 Tomcat服务器是部署Java Web应用的关键组件,其与JDK的配合使得开发和部署...
总结来说,“laravel-varnishable”是Laravel开发者提升应用性能的一个有力工具,通过简化Varnish的集成过程,使得即使是对Varnish不熟悉的开发者也能轻松利用其优势。了解并掌握这个扩展包的使用,将有助于在项目中...
总结来说,PHP脚本通过执行系统命令获取Varnish的统计数据,并将其以一种易于理解的格式展示出来,从而实现对Varnish服务器状态的实时监控。这对于Web服务器的维护人员来说是一个非常有用的工具,他们可以通过这个...
1. 首先,从官方仓库下载Varnish源代码包,例如这里使用的是`varnish-3.0.2.tar.gz`。 2. 解压缩下载的源代码包:`tar zxvf varnish-3.0.2.tar.gz` 3. 进入解压后的目录:`cd varnish-3.0.2` 4. 配置编译选项:`./...
Linux系统下Varnish缓存的配置优化知识总结: Varnish是一款开源的高性能HTTP加速器,被广泛用于提高网站的访问速度,减少服务器负载。它通过将内容缓存到内存中,减少了对后端服务器的请求次数。Varnish使用了...
总结来说,实现高命中率的Varnish缓存配置需要考虑以下几个关键点: 1. 合理设置后端服务器的连接超时时间,以确保服务的稳定性。 2. 控制缓存的过期时间和grace时间,平衡响应速度和数据新鲜度。 3. 精心设计缓存...
它的多核优化、高性能特性和丰富的配置选项,使得它成为企业级Web服务的理想选择,特别是与Varnish Cache配合使用时,能够提供卓越的性能和安全性。对于那些关心数据安全、性能优化和可扩展性的IT专业人员来说,掌握...