`

Varnish使用小结

 
阅读更多

Varnish使用小结 - [技术笔记]

2009-02-12 | Tag:varnish compress acl purge varnishadm

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
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-EncodingVarnish 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 *$ (清除所有缓存)

分享到:
评论

相关推荐

    linux-varnish配置

    安装并配置好Varnish后,可以使用以下命令启动和停止服务: ```bash sudo systemctl start varnish sudo systemctl enable varnish sudo systemctl status varnish sudo systemctl stop varnish ``` 四、监控与...

    varnish-3.0.7.tgz 源码安装包

    下面将详细介绍Varnish的原理、功能以及如何安装和使用3.0.7版本。 **Varnish基础概念** Varnish是一个开源的反向代理服务器,它的主要作用是接收HTTP请求,并根据预设的策略缓存网页内容。当后续的请求相同内容时...

    varnish测试报告

    根据提供的文件信息,以下是关于“Varnish测试报告”的详细知识点总结: ### Varnish缓存系统概述 Varnish是一款高性能的HTTP反向代理服务器和缓存服务器,常用于Web应用的加速。它能够将静态内容缓存在内存中,并...

    varnish的VCL的详细解析

    #### 四、总结 通过上述介绍,我们了解了VCL的基本概念、后端配置、负载均衡策略、健康检查方法以及访问控制列表的应用。VCL的强大之处在于它能够高度定制化地管理缓存和负载均衡逻辑,从而有效提升Web应用的性能和...

    proxyServer squid / varnish / apache traffic server / ATS

    总结来说,代理服务器在现代网络环境中扮演着重要的角色,而Squid、Varnish和ATS作为代理缓存服务器的代表,各有其优缺点。选择合适的代理缓存服务器软件应考虑实际应用场景的需求,以及服务器的性能和稳定性。对于...

    varnish服务器[借鉴].pdf

    总结来说,Varnish作为一个强大的HTTP缓存加速器,通过优化的内存管理和高效的缓存策略,极大地提高了网站的响应速度。与Linux内核参数的调整、PHP环境的正确配置相结合,能够构建出一套高性能的Web服务系统。

    varnish服务器[参考].pdf

    总结来说,Varnish作为一个高性能的HTTP缓存加速器,通过与Nginx、PHP、MySQL等组件配合,可以构建出强大且响应迅速的服务器集群。优化内核参数、正确配置PHP和Nginx的FastCGI设置,以及充分利用Varnish的特性,都能...

    Day02 varnish cdn推送平台

    #### 总结 通过以上步骤,我们可以成功搭建一个基于Varnish的CDN推送平台。此平台不仅可以显著提升网站的访问速度,还能有效减轻源服务器的压力,提高系统的稳定性和可用性。此外,还可以根据业务需求进行更多的...

    varnish安装配置[参照].pdf

    Varnish是一款高性能的HTTP缓存...总结起来,Varnish是一个强大的HTTP缓存解决方案,通过VCL配置可以实现高效、灵活的缓存策略,优化网站性能,降低服务器压力。正确安装和配置Varnish是提升Web应用性能的关键步骤。

    6.5: Tomcat服务器 、 Tomcat应用案例 、 Varnish代理服务器 、 总结和.docx

    配置Varnish时,通常会将Tomcat作为后端服务器,Varnish接收用户请求,缓存可重复使用的资源,并将动态请求转发给Tomcat处理。 【总结】 Tomcat服务器是部署Java Web应用的关键组件,其与JDK的配合使得开发和部署...

    Laravel开发-laravel-varnishable

    总结来说,“laravel-varnishable”是Laravel开发者提升应用性能的一个有力工具,通过简化Varnish的集成过程,使得即使是对Varnish不熟悉的开发者也能轻松利用其优势。了解并掌握这个扩展包的使用,将有助于在项目中...

    php实现监控varnish缓存服务器的状态

    总结来说,PHP脚本通过执行系统命令获取Varnish的统计数据,并将其以一种易于理解的格式展示出来,从而实现对Varnish服务器状态的实时监控。这对于Web服务器的维护人员来说是一个非常有用的工具,他们可以通过这个...

    varnish安装配置[归类].pdf

    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缓存的配置优化

    Linux系统下Varnish缓存的配置优化知识总结: Varnish是一款开源的高性能HTTP加速器,被广泛用于提高网站的访问速度,减少服务器负载。它通过将内容缓存到内存中,减少了对后端服务器的请求次数。Varnish使用了...

    高命中率的varnish缓存配置分享

    总结来说,实现高命中率的Varnish缓存配置需要考虑以下几个关键点: 1. 合理设置后端服务器的连接超时时间,以确保服务的稳定性。 2. 控制缓存的过期时间和grace时间,平衡响应速度和数据新鲜度。 3. 精心设计缓存...

    hitch:Varnish Software的可扩展TLS代理

    它的多核优化、高性能特性和丰富的配置选项,使得它成为企业级Web服务的理想选择,特别是与Varnish Cache配合使用时,能够提供卓越的性能和安全性。对于那些关心数据安全、性能优化和可扩展性的IT专业人员来说,掌握...

Global site tag (gtag.js) - Google Analytics