教程:编译失败

时间:2017-09-16 08:13:41

标签: varnish varnish-vcl varnish-4

Ubuntu 16.04.2

清漆4.1.1

我卡在这里: https://varnish-cache.org/docs/4.1/tutorial/starting_varnish.html

整本书中配置的第一个变化。它说:将主机更改为www.varnish-cache.org并重新加载。

/etc/varnish/default.vcl

vcl 4.0;

backend default {
    .host = "www.varnish-cache.org";
    .port = "80";
}

我执行了:

sudo service varnish restart

sudo service varnish reload

但无论如何我总是有"错误503后端提取失败"。

我试过了:

$ sudo varnishd -d -f default.vcl 
Error:
Failed to create vcl_boot/vgc.so: Permission deniedVCL compilation failed

似乎编译失败了。你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

这是一个有点破解的教程,原因如下:

  • 他们要求您将后端指向DNS名称。正确的方法是在后端定义中指定IP
  • 无论您指定什么(DNS或IP),它都会最终传递您访问Varnish的网站的主机标头,并要求后端服务器提供具有该主机名的网站。

那么为什么你会因为教程而得到错误:

  • 您可以访问,例如http://localhost/(或您访问Varnish的任何主机名)
  • 然后Varnish在varnish-cache.org上与HTTP服务器通话并询问http://localhost
  • 显然varnish-cache.org服务器不知道那个,并且很可能(根据他们的配置会发出重定向/错误/等),从而导致你看到的错误。

最好将它指向您自己的Web服务器,并按照以下方式执行:

vcl 4.0;

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

以上假设您使用Varnish在同一台计算机上运行Web服务器(nginx或Apache等),并使其在端口8080上运行。