如何解决托管在kubernetes中的后端清漆
我正在尝试在本地运行清漆缓存。用nginx-ingress-controller代理由kubernetes管理的域。
结果是,我有ELB和入口控制器将请求路由到3个不同的kubernetes节点,并且出现以下错误:
➜ docker logs a5d30511ffc756f2b5cf4b243ff66d1d9e9d7d47f560f3ca03d07b42efcc763a
Could not delete 'vcl_boot.1601710985.783551/vgc.sym': No such file or directory
Error:
Message from VCC-compiler:
Backend host "sub.domain.com:443": resolves to too many addresses.
Only one IPv4 and one IPv6 are allowed.
Please specify which exact address you want to use,we found all of these:
31.208.6.184:443
31.208.221.23:443
35.161.52.197:443
('/etc/varnish/default.vcl' Line 4 Pos 11)
.host = "sub.domain.com:443";
----------###########################-
In backend specification starting at:
('/etc/varnish/default.vcl' Line 3 Pos 1)
backend default {
#######----------
Running VCC-compiler failed,exited with 2
VCL compilation failed
所以我的配置是:
vcl 4.0;
backend default {
.host = "sub.domain.com:443";
}
该怎么办?
解决方法
首先,您不应该在.host
属性中包含端口号。有一个单独的.port
属性。
语法如下:
backend default {
.host = "xxx";
.port = "xxx";
}
如果您未指定端口属性,则Varnish将使用端口80
作为默认值。
从理论上讲,您可以在后端定义中添加.port = "443";
,但是使用端口443
意味着需要进行TLS连接。
Varnish缓存不支持使用TLS的后端连接。但是,Varnish的商业版本 Varnish Enterprise 。
有关{em> Varnish Enterprise中的后端TLS 的更多信息,请参见https://docs.varnish-software.com/varnish-cache-plus/features/backend-ssl/。 参见http://varnish-cache.org/docs/trunk/reference/vcl.html#backend-definition
您的特定错误
发生特定错误是因为您使用的主机名解析为多个IP地址。
请使用仅引用单个IP的另一个主机名,或使用您要使用的节点的IP地址。
另一种选择是切换到Varnish Enterprise并使用dynamic backend module。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。