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

Varnish 4.0.3补丁安装后端口配置异常问题求助

问题原因与解决方法

问题根源

  1. 后端转发死循环
    执行的varnishd命令中,-b www-test-cms:80将Varnish的后端目标设成本机80端口——但Varnish本身就在监听80端口接收用户请求,这导致请求进入Varnish后被转发回自身,形成死循环,永远无法获取Drupal的真实内容,直接引发网站无法解析。

  2. 通信端口不匹配
    此前Varnish固定使用127.0.0.1:81与Drupal的Varnish模块通信,但新启动命令未通过-T参数指定该端口,导致Varnish随机分配了127.0.0.1:35588作为通信端口,而Drupal模块仍配置为连接81端口,两者无法正常交互,进一步加剧了服务异常。

修复步骤

1. 终止异常Varnish进程

先关闭错误启动的Varnish实例:

pkill varnishd

2. 用正确参数重启Varnish

结合补丁要求与原有架构,执行以下命令启动Varnish:

/opt/rh/rh-varnish4/root/usr/sbin/varnishd -pvcc_allow_inline_c=true -b 127.0.0.1:81 -T 127.0.0.1:81 -a 0.0.0.0:80

参数说明:

  • -pvcc_allow_inline_c=true:满足补丁文档要求的必要配置
  • -b 127.0.0.1:81:指定后端为原有Drupal服务端口
  • -T 127.0.0.1:81:固定Varnish与Drupal模块的通信端口,匹配模块配置
  • -a 0.0.0.0:80:保持Varnish对外监听80端口,维持原有访问入口

3. 验证修复效果

  • 执行netstat -tlnp检查端口状态,确认0.0.0.0:80和127.0.0.1:81均被varnishd监听
  • 直接访问网站,确认内容可正常解析
  • 核对Drupal的Varnish模块配置,确保其指向的IP和端口与-T参数一致

4. 固化配置(避免重启失效)

将正确的启动参数写入Varnish系统服务配置文件(通常为/etc/sysconfig/varnish或/etc/systemd/system/varnish.service),替换原有启动命令后重载服务:

systemctl daemon-reload
systemctl restart varnish

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 04:05:24