美文网首页程序员
Varnish 接口缓存

Varnish 接口缓存

作者: Sunsol | 来源:发表于2017-07-06 19:16 被阅读0次

    varnish基础概念

    可以基于内存缓存,也可以在磁盘上缓存,但是就算存放在磁盘上,也不能实现持久缓存

    只要进成本管控,此前缓存通通失效,无论是在内存还是在磁盘,但是现在已经具备持久缓存功能,但是仍然在试验阶段,经常容易崩溃,而且最大大小不能超过1G。

    如果期望内存大小超过几十个G,比如图片服务器,纯粹使用内存,性能未必好,这个时候可以使用磁盘进行缓存,或SSD X 2座RAID避免磁盘损坏,在实现随机访问上ssd硬盘要比机械硬盘要好得多,如果必须要缓存在磁盘上还是建议使用ssd磁盘。


    开始

    搭建一台云服务器,使用ssh进入,并搭建好一个web服务器,例如:Apache或nginx

    更新系统

    sudo apt-get update
    sudo apt-get upgrade
    

    安装和配置Varnish

    1、安装Varnish包

    sudo apt-get install varnish
    

    2、为了避免配置被以后的更新而修改,复制一下默认配置:

    cd /etc/varnish
    sudo cp default.vcl user.vcl
    

    3、停止Varnish服务,配置Varnish

    sudo systemctl stop varnish
    

    用Systemd配置varnish后台

    打开varnish.service文件,设置端口、配置文件、缓存大小,例如

    ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/user.vcl -S /etc/varnish/secret -s malloc,1G
    
    

    varnish.service的路径为/lib/systemd/system/varnish.service

    本人在Ubuntu上的配置具体内容如下
    [Unit]
    Description=Varnish HTTP accelerator
    
    [Service]
    Type=forking
    LimitNOFILE=131072
    LimitMEMLOCK=82000
    ExecStartPre=/usr/sbin/varnishd -C -f /etc/varnish/default.vcl
    ExecStart=/usr/sbin/varnishd -a :6081 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
    ExecReload=/usr/share/varnish/reload-vcl
    
    [Install]
    WantedBy=multi-user.target
    
    1. 上面的配置分配最多1G的内存来存储缓存项,如果你需要调整这些配置,编辑-s malloc, 1G即可。
    2. 重启systemd:
    sudo systemctl daemon-reload
    

    修改Varnish的默认配置通过VCL文件

    在上述内容中,配置文件中有一个默认的user.vcl文件,你需要配置这个文件,来配置Varnish。路径为/etc/varnish/user.vcl。配置内容如下:

    backend default {
        .host = "127.0.0.1";     (本地IP)
        .port = "8080";          (所需缓存的服务器的端口号)
    }
    

    配置缓存时间

    同上打开user.vcl文件,加上以下内容:

    sub vcl_backend_response {
        set beresp.ttl = 5m
    }
    

    相关文章

      网友评论

        本文标题:Varnish 接口缓存

        本文链接:https://www.haomeiwen.com/subject/zxkkhxtx.html