Varnish 接口缓存

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
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 缓存的基础知识 1、程序本身具有局部性 时间局部性过去访问到的数据,也有可能被两次访问 空间局部性一个数据被访问到...
    魏镇坪阅读 2,082评论 1 3
  • 1.介绍 运维日常: 2.Web Page Cache: varnish2.0,3.0处理过程 varnish4....
    尛尛大尹阅读 3,410评论 0 0
  • 最近在研究Docker的源码.读到ApiServer的启动过程时,发现其有一个新的概念,叫做service act...
    AlstonWilliams阅读 1,173评论 1 4
  • 唯一一次不用自己带脑子的旅行。只负责吃喝玩乐,敲开心!!! 时间:2017.03.29-04.05 人物:家人 器...
    SSSylvia阅读 940评论 16 4
  • 一分钟的时间,我们能做什么? 年青人小A,觉得生活越来越迷茫,每天都不知道做什么好。他突然想起有位远房的叔叔,不仅...
    大童小逸阅读 365评论 0 1