Varnish Docker镜像不工作Node js在本地主机



我正在尝试为一个小节点js服务器实现Varnish

(index.js)
const port = 80;
require("http").createServer((req, res) => {
res.write(new Date().toISOString());
res.end();
}).listen(port, () => {
console.log(`http://127.0.0.1:${port}/`);
})
(default.vcl)
vcl 4.1;
backend default {
.host = "127.0.0.1";
.port = "80";
}
(CMD)
//now I run docker  with following commands
docker run  --name varnish -p 8080:80   -e VARNISH_SIZE=2G  varnish:stable
docker cp default.vcl varnish:/etc/varnish 
(Followed By restart container)

但我看到以下错误:

错误503后端获取失败后端读取失败

冥想大师:XID: 31日

清漆缓存服务器

您的清漆配置有问题。您已设置:

backend default {
.host = "127.0.0.1";
.port = "80";
}

但是127.0.0.1(或localhost)意味着"这个容器",并且您的后端不是在与Varnish相同的容器内运行。如果你的node.js服务器运行在你的主机上,你可能想做这样的事情:

vcl 4.1;
backend default {
.host = "host.docker.internal";
.port = "80";
}

然后像这样开始容器:

docker run  --name varnish -p 8080:80 --add-host=host.docker.internal:host-gateway  -e VARNISH_SIZE=2G  varnish:stable

将主机名host.docker.internal映射为"Docker正在运行的主机"。


如果你的node.js在另一个容器中运行,解决方案将看起来有点不同。

相关内容

  • 没有找到相关文章

最新更新