使用配置文件启动 Varnish
Start Varnish with a config file
Ubuntu 18.04.4 LTS
varnishd -V
varnishd (varnish-6.4.0 revision 13f137934ec1cf14af66baf7896311115ee35598)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2020 Varnish Software AS
我学习 Varnish 的第一步,现在已经尘埃落定。
我已经在/etc/systemd/system/varnish.service
准备了一个配置文件
我正在尝试使用此配置启动 varnishd:
[Unit]
Description=Varnish HTTP accelerator
Documentation=https://www.varnish-cache.org/docs/4.1/ man:varnishd
[Service]
Type=simple
LimitNOFILE=131072
LimitMEMLOCK=82000
ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :6081 -b :8000 -T localh$
ExecReload=/usr/share/varnish/varnishreload
ProtectSystem=full
ProtectHome=true
PrivateTmp=true
PrivateDevices=true
[Install]
WantedBy=multi-user.target
文件内容取自"Getting started with Varnish Cache"一书,不过是4.1版本的。
文档:https://varnish-cache.org/docs/6.4/users-guide/run_security.html#cli-interface-authentication
好了,文件我准备好了。我输入命令:
varnishd -S /etc/systemd/system/varnish.service
Error: Neither -b nor -f given. (use -f '' to override)
(-? gives usage)
但是这个命令工作正常:
sudo varnishd -a localhost:6081 -b localhost:8000
你能帮我理解一下吗:
- 最简单的配置文件应该是什么样的。
- 应该放在哪里。
- 如何使用此配置启动 Varnish。
看这里:https://varnish-cache.org/docs/6.4/users-guide/command-line.html
这里更详细:https://varnish-cache.org/docs/6.4/reference/varnishd.html
Varnish 配置可以放在这里:/etc/varnish/default.vcl
最简单的 VCL:
backend default {
.host = "localhost:81";
}
如何编写VCL:https://varnish-cache.org/docs/6.4/users-guide/vcl.html
我是 Varnish Cache 入门 的作者。感谢您购买我的书。
varnish.service
文件是 systemd
文件。它与 Varnish 本身无关,但它是 Ubuntu 用来管理 Varnish 服务的东西。
ExecStart
命令
这里我将如何在 varnish.service
中设置 ExecStart
命令:
/usr/sbin/varnishd -f /etc/varnish/default.vcl -a http=:80,HTTP -a proxy=:8443,PROXY -s malloc,1G -S /etc/varnish/secret -T localhost:6082
您在此命令中看不到的内容:
-F
:只有在前台 运行 运行 varnishd
进程时,-F
标志才有意义。例如在 Docker 中。由于您正在使用 systemd
到 运行 Varnish,您可以删除该参数
-b
:-b
选项用于定义后端位置。如果您使用 -b
,则不能使用 -f
,您的 VCL 配置需要 -f
。
选项的含义
-f
:VCL文件所在位置。这里指的是/etc/varnish/default.vcl
-a
:varnish的监听地址。在这种情况下,端口 80 用于常规 HTTP,端口 8443 用于使用 PROXY 协议[= 的连接93=]
-s
:缓存的大小,本例为1GB
-S
:秘钥文件所在位置。在这种情况下,这是 /etc/varnish/secret
-T
:CLI的监听地址。在这种情况下,这是 端口 6082 上的 localhost
VCL 文件
包含后端位置并定义缓存规则的 VCL 文件。此文件位于 /etc/varnish/default.vcl
.
这是开始的最小 VCL 代码量:
vcl 4.0;
backend default {
.host = "localhost";
.port = 8080;
}
此配置假设您的网络服务器 运行 在同一台机器上 端口 8080。
您可以通过连接到 the different process states of the Varnish Finite State Machine 来扩展 varnish 的配置。
请参阅 https://varnish-cache.org/docs/6.0/reference/vcl.html#varnish-configuration-language 了解有关 VCL 的更多信息。
激活更改
每当您更新 varnish.service
时,您都需要重新加载 systemd
。这是您需要的命令:
sudo systemctl daemon-reload
要激活 VCL 文件中的更改,您需要运行以下命令:
sudo systemctl reload varnish.service
祝你好运!
Ubuntu 18.04.4 LTS
varnishd -V
varnishd (varnish-6.4.0 revision 13f137934ec1cf14af66baf7896311115ee35598)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2020 Varnish Software AS
我学习 Varnish 的第一步,现在已经尘埃落定。
我已经在/etc/systemd/system/varnish.service
准备了一个配置文件我正在尝试使用此配置启动 varnishd:
[Unit]
Description=Varnish HTTP accelerator
Documentation=https://www.varnish-cache.org/docs/4.1/ man:varnishd
[Service]
Type=simple
LimitNOFILE=131072
LimitMEMLOCK=82000
ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :6081 -b :8000 -T localh$
ExecReload=/usr/share/varnish/varnishreload
ProtectSystem=full
ProtectHome=true
PrivateTmp=true
PrivateDevices=true
[Install]
WantedBy=multi-user.target
文件内容取自"Getting started with Varnish Cache"一书,不过是4.1版本的。
文档:https://varnish-cache.org/docs/6.4/users-guide/run_security.html#cli-interface-authentication
好了,文件我准备好了。我输入命令:
varnishd -S /etc/systemd/system/varnish.service
Error: Neither -b nor -f given. (use -f '' to override)
(-? gives usage)
但是这个命令工作正常:
sudo varnishd -a localhost:6081 -b localhost:8000
你能帮我理解一下吗:
- 最简单的配置文件应该是什么样的。
- 应该放在哪里。
- 如何使用此配置启动 Varnish。
看这里:https://varnish-cache.org/docs/6.4/users-guide/command-line.html
这里更详细:https://varnish-cache.org/docs/6.4/reference/varnishd.html
Varnish 配置可以放在这里:/etc/varnish/default.vcl
最简单的 VCL:
backend default {
.host = "localhost:81";
}
如何编写VCL:https://varnish-cache.org/docs/6.4/users-guide/vcl.html
我是 Varnish Cache 入门 的作者。感谢您购买我的书。
varnish.service
文件是 systemd
文件。它与 Varnish 本身无关,但它是 Ubuntu 用来管理 Varnish 服务的东西。
ExecStart
命令
这里我将如何在 varnish.service
中设置 ExecStart
命令:
/usr/sbin/varnishd -f /etc/varnish/default.vcl -a http=:80,HTTP -a proxy=:8443,PROXY -s malloc,1G -S /etc/varnish/secret -T localhost:6082
您在此命令中看不到的内容:
-F
:只有在前台 运行 运行varnishd
进程时,-F
标志才有意义。例如在 Docker 中。由于您正在使用systemd
到 运行 Varnish,您可以删除该参数-b
:-b
选项用于定义后端位置。如果您使用-b
,则不能使用-f
,您的 VCL 配置需要-f
。
选项的含义
-f
:VCL文件所在位置。这里指的是/etc/varnish/default.vcl
-a
:varnish的监听地址。在这种情况下,端口 80 用于常规 HTTP,端口 8443 用于使用 PROXY 协议[= 的连接93=]-s
:缓存的大小,本例为1GB-S
:秘钥文件所在位置。在这种情况下,这是/etc/varnish/secret
-T
:CLI的监听地址。在这种情况下,这是 端口 6082 上的
localhost
VCL 文件
包含后端位置并定义缓存规则的 VCL 文件。此文件位于 /etc/varnish/default.vcl
.
这是开始的最小 VCL 代码量:
vcl 4.0;
backend default {
.host = "localhost";
.port = 8080;
}
此配置假设您的网络服务器 运行 在同一台机器上 端口 8080。
您可以通过连接到 the different process states of the Varnish Finite State Machine 来扩展 varnish 的配置。
请参阅 https://varnish-cache.org/docs/6.0/reference/vcl.html#varnish-configuration-language 了解有关 VCL 的更多信息。
激活更改
每当您更新 varnish.service
时,您都需要重新加载 systemd
。这是您需要的命令:
sudo systemctl daemon-reload
要激活 VCL 文件中的更改,您需要运行以下命令:
sudo systemctl reload varnish.service
祝你好运!