如何在端口 80 上将 Varnish 设置为 运行。 /etc/default/varnish 中设置的 DAEMON_OPTS 出现故障

How to set Varnish to run on port 80. Malfunction of DAEMON_OPTS set in /etc/default/varnish

我已经安装了 varnish 并遵循了设置它的确切说明,但是,它没有按预期工作。

我的 /etc/default/varnish 设置是:

DAEMON_OPTS="-a :80 \
             -T localhost:1234 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,256m"

我的 /etc/varnish/default.vlc 设置是

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

我的 apache port.conf 设置是:

NameVirtualHost 127.0.0.1:8080
Listen 127.0.0.1:8080

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

我是 运行 ubuntu 15.04,Apache 2.4.10。当我开始清漆并检查过程时,我得到了休闲:

0:00 /usr/sbin/varnishd -a :6081 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m

似乎在 /etc/varnish/default.vcl 中设置的监听地址或管理界面都不起作用。 None 我的虚拟机因此工作。我该如何解决这个问题?

好的。问题解决了。首先做

sudo grep -R 'ExecStart=/usr/sbin/varnishd' /etc/

所以你实际上可以找到另一个设置 Varnish 守护程序选项的地方(在我的例子中是 /etc/systemd/system/multi-user.target.wants/varnish.service)。在 vim、nano 或其他文件中打开文件并在该文件中将 "ExecStart" 设置为 fallows:

-a :[same as /etc/default/varnish]80 -T localhost:[same as /etc/default/varnish]1234 -f [same as /etc/default/varnish ]/etc/varnish/default.vcl -S [same as /etc/default/varnish ]/etc/varnish/secret -s malloc,256m

保存并退出。之后做:

systemctl daemon-reload
systemctl restart varnish.service

然后我们就完成了。一点都不像官方教程。明显是老了

Full explanation of the problem here

您可以使用以下步骤将 varnish 默认端口更改为 80:

  1. 打开路径上的文件:sudo vim /lib/systemd/system/varnish.service
  2. 更新您的默认设置: ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T :6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
  3. 运行 以下命令: sudo systemctl daemon-reload sudo service varnish restart