即使容器未运行,Docker仍保持主机名可用

问题描述 投票:0回答:1

使用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处理此问题。

谢谢!

docker varnish
1个回答
1
投票

当后端不再可用时,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以获得概述

© www.soinside.com 2019 - 2024. All rights reserved.