You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu18/Varnish4.x使用IP作为backend.list过滤条件无结果如何解决

问题根因

  1. backend.list的过滤逻辑是匹配输出的完整后端标识字符串,默认执行命令时不会输出后端的IP、端口后缀,只有加上-p参数才会展示后端名(IP:端口)格式的完整标识,你未加-p参数时输出内容没有IP信息,自然无法检索到匹配结果。
  2. 如果你VCL配置中.host字段填写的是域名而非直接写IP,Varnish 4.x默认仅在启动时做一次DNS解析,解析后的运行时IP不会纳入普通检索的匹配范围。

解决方法

无需修改VCL的操作方案

直接在命令中添加-p参数即可实现IP、端口的过滤和后端状态设置:

  • 查看带IP端口的完整后端列表
varnishadm backend.list -p
  • 按IP过滤后端
varnishadm backend.list -p *10.105*
  • 设置后端状态,先通过上面的命令拿到完整的后端标识(格式为后端名(IP:端口)),再执行对应命令即可,示例:
# 手动将指定后端设为sick状态
varnishadm backend.set_state xxx-www-5(10.105.xxx.xxx:xxx443) sick

需修改VCL的永久适配方案

如果需要直接用无-p参数的命令检索IP,直接把所有backend块的.host字段从域名替换为对应的IP地址,重载Varnish配置后即可生效。如果你的后端域名对应的IP会动态变化,不建议使用该方案,可以额外配置动态DNS解析参数:

  • 在backend块中添加.dynamic = true配置
  • 调整Varnish启动参数中的backend_dns_ttl值控制DNS解析缓存的时长

配置动态DNS后仍可以用带-p参数的方案操作后端。

内容的提问来源于stack exchange,提问作者Marco Shaw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 17:57:06