使用Docker和Varnish时遇到以下问题。
我的docker-compose.yml
文件定义了以下2个容器
varnish:
image: varnish
network: test
my-app:
image: my-app-image
network: test
我的清漆VCL具有以下配置:
backend myApp {
.host = "my-app";
.port = "8080";
.first_byte_timeout = 300s;
.probe = {
.url = "/percolate-health-check";
.timeout = 1s;
.interval = 4s;
.window = 5;
.threshold = 3;
}
}
backend fallback { ...fallback backend settings }
现在我遇到的是当前问题。容器my-app出现故障。网络名称my-app
也消失了。反过来这会使Varnish崩溃,因为无法解析my-app。
即使容器已关闭,Docker主机名是否仍存在某种方法?或者我应该如何使用Varnish / Docker处理此问题。
谢谢!
当后端不再可用时,Varnish通常不会崩溃。相反,将返回HTTP 503
错误。
如果没有后备容器,则可以使用宽限模式在后端关闭时继续提供过时的数据。看看https://varnish-cache.org/docs/6.0/users-guide/vcl-grace.html#misbehaving-servers以查看VCL示例。
如果您确实有一个后备后端,或者通常只有多个后端,则可以使用director来平衡后端之间的负载:https://varnish-cache.org/docs/6.0/users-guide/vcl-backends.html#directors。
[董事类型很多。看到https://varnish-cache.org/docs/6.0/reference/vmod_generated.html#varnish-directors-module以获得概述