无法在 Ubuntu 11.10 下的 Varnish 3.0.0 中使用 vmod std

无法在 Ubuntu 11.10 下的 Varnish 3.0.0 中使用 vmod std

我想做import std;一些std.syslog。但是,当我重新启动 varnish 时,VCC 编译器失败:

$ sudo service varnish restart
 * Stopping HTTP accelerator varnishd                                [ OK ] 
 * Starting HTTP accelerator varnishd                                [fail] 
SMA.s0: max size 2048 MB.
Message from VCC-compiler:
Could not load module std
        /usr/lib/varnish/vmods/libvmod_std.so
        /usr/lib/varnish/vmods/libvmod_std.so: cannot open shared object file: No such file or directory
('input' Line 15 Pos 8)
import std;
-------###-

Running VCC-compiler failed, exit 1

VCL compilation failed

我正在运行 Ubuntu 11.10 和我的 varnish 版本:

$ varnishd -V
varnishd (varnish-3.0.0 revision cbf1284)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2011 Varnish Software AS

这不是std内置的 VMOD 吗?我该如何解决这个问题?谢谢。


更新:我按照官方网站上的说明将 Varnish 升级到了 3.0.3。但是,我仍然不明白为什么std3.0.0 中没有这个功能。

答案1

下载最新的 Varnish 源版本 3.0.3 并编译它。安装后,locate libvmod_std.so确认此模块也已安装。然后,您可以启动 varnish 并使用 来检查它是否与您的新 vcl 一致import std;。为了进行调试,您可以-d -d在 文件中的 varnish 启动默认值中添加选项/etc/default/varnish。查看man vmod_std有关 varnish 标准模块的更多详细信息。对于我来说,这个版本运行良好。

默认情况下,安装将 vcl 文件放在 下/usr/local/etc/varnish,将二进制文件放在 下/usr/local/bin/varnish*,您可以在 中找到 varnishd /usr/bin/。您需要在 init.d 启动文件中更改以下内容,/etc/init.d/varnish因为它与通过 apt-get 安装不同。

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/sbin/varnishd

还可以更改 vcl 文件/etc/default/varnish路径

-f /usr/local/etc/varnish/default.vcl

现在,您应该能够像使用通过 apt-get 安装的 varnish 一样启动和停止新编译的 varnish。

答案2

您能否使用以下命令升级您机器上的清漆:

aptitude upgrade varnish

它应该可以解决问题。如果没有,请评论,我们会尝试找到其他解决方法。

答案3

我最终按照官方网站的说明将Varnish升级到3.0.3:https://www.varnish-cache.org/installation/ubuntu

要使用 varnish-cache.org 存储库,请执行以下操作

  1. curl http://repo.varnish-cache.org/debian/GPG-key.txt | sudo apt-key add -
  2. echo "deb http://repo.varnish-cache.org/ubuntu/ lucid varnish-3.0" | sudo tee -a /etc/apt/sources.list
  3. sudo apt-get update
  4. sudo apt-get install varnish

他们只提供适用于 Ubuntu LTS 版本的软件包,而不是所有中间版本。虽然如此,但(11.10)lucid运行良好。oneric

将 Varnish 升级到 3.0.3 后,我现在可以正常sudo service varnish reload工作import std;

相关内容