我已经将Varnish配置为使用文件存储。清漆似乎正在工作,但缓存似乎只是我指定的大小的一小部分,而我为存储指定的文件似乎还没有创建。
在进行配置更改后,我一直在运行service varnish reload来重新启动服务。这就足够了吗?
运行varnishstat显示了一个不断增加的MAIN.n_lru_nuked值,我认为这意味着它认为它已经耗尽了缓存空间,但是SMA.s0.c_bytes (我认为它是存储后端的大小?)只在3.46G。
有什么办法可以调试这个吗?我的配置没被拿起来吗?
的Config部分
VARNISH_LISTEN_PORT=80
DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-b s3.amazonaws.com:80 \
-u varnish -g varnish \
-S /etc/varnish/secret \
-s disk=file,/var/lib/varnish/$INSTANCE/varnish_storage.bin,30G"vcl 4.0;
backend default {
.host = "cdn.webampskins.org.s3.amazonaws.com";
.port = "80";
}
sub vcl_recv {
set req.http.Host = "cdn.webampskins.org.s3.amazonaws.com";
}
sub vcl_backend_response {
set beresp.ttl = 3y;
set beresp.storage_hint = "disk";
# I've confirmed that in my response I see this header
set beresp.http.x-storate = "disk";
}
sub vcl_deliver {
# Empty
}我的文件存储配置似乎没有被获取:
~# varnishadm storage.list
Storage devices:
storage.s0 = malloc
storage.Transient = malloc不知道为什么,也不知道如何调试。
发布于 2021-10-05 07:48:42
如果操作系统使用Systemd,则不要使用/etc/default/varnish配置运行时参数。
请使用以下命令编辑这些设置:
sudo systemctl edit varnish编辑完成后,使用以下命令重新启动Varnish:
sudo systemctl restart varnish有关通过https://www.varnish-software.com/developers/quick-start/#through-the-systemctl-edit-command二进制文件管理清漆的更多信息,请参见systemctl。
警告:我们强烈反对使用
file装载机。尽管与内存相比,它允许扩展缓存的大小,但它不提供任何持久性。这可能是你可以忍受的。然而,我们使用file装载机的经验是,随着时间的推移,它很容易出现磁盘碎片。摆脱碎片的唯一方法是通过定期通过varnishd完全重新启动sudo systemctl restart varnish进程。
https://serverfault.com/questions/1079544
复制相似问题