在 Ubuntu(15.10)上运行 LEMP,尝试添加 varnish,遇到问题

在 Ubuntu(15.10)上运行 LEMP,尝试添加 varnish,遇到问题

我似乎遇到了问题varnish。虽然没什么大问题,但我很难找出问题所在。

基本上,varnish设置为在端口上运行,6081它确实如此;但是。我尝试编辑/etc/default/varnish配置并将更改为daemon_opts80甚至从文件中注释掉所有内容,但 varnish 似乎仍在上运行6081

因此,要么它不使用/etc/default/varnish配置,而是从其他地方获取其设置,要么/etc/default/varnish没有任何区别。

我的问题是,是否有人知道它可能使用哪个配置文件来获取其设置,或者我如何强制它使用配置?谢谢。

答案1

想出了一个修复方法,因为这是 varnish 的一个错误。本文的其余部分是本文的编辑版本:http://deshack.net/how-to-varnish-listen-port-80-systemd/


基本上,仅由 读取,而不是由初始化脚本( )/etc/default/varnish读取。/etc/init.d/varnish scriptsystemd/lib/systemd/system/varnish.service

我们可以覆盖systemdvarnish 的初始化脚本并进行一些改变。

# cp /lib/systemd/system/varnish.service /etc/systemd/system/
# nano /etc/systemd/system/varnish.service

我们得出了如下结论:

[Unit]
Description=Varnish HTTP accelerator

[Service]
Type=forking
LimitNOFILE=131072
LimitMEMLOCK=82000
ExecStartPre=/usr/sbin/varnishd -C -f /etc/varnish/default.vcl
ExecStart=/usr/sbin/varnishd -a :6081 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
ExecReload=/usr/share/varnish/reload-vcl

[Install]
WantedBy=multi-user.target


ExecStart=/usr/sbin/varnishd -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m

然后使用,

# sudo service varnish restart 

或者

# systemctl reload varnish.service

答案2

确保使用了正确的 DAEMON_OPTS 行。默认 Varnish 配置有 4 个 DAEMON_OPTS 配置示例(替代方案 1,最小配置;替代方案 2,使用 VCL 进行配置;等等)。如果您取消注释其中几个,则只有最后一个取消注释的 DAEMON_OPTS 行会应用。

例子:

## Alternative 2, Configuration with VCL
#
# Listen on port 6081, administration on localhost:6082, and forward to
# one content server selected by the vcl file, based on the request.
# Use a 256MB memory based cache.
#
DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl.v4 \
             -S /etc/varnish/secret \
             -s malloc,256m"

相关内容