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
这是我学习清漆的第一步,我已经一败涂地了。
我已经在/etc/systemd/system/vaminis.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
该文件的内容取自《Varnish Cache入门》一书,但适用于4.1版。
文件:https://varnish-cache.org/docs/6.4/users-guide/run_security.html#cli-接口认证
嗯,我已经准备好了文件。我输入命令:
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
我是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
:瓦尼什的监听地址。在这种情况下,端口80用于常规HTTP,8443端口用于使用PROXY协议的连接-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;
}
此配置假定您的Web服务器在同一台机器上运行,位于端口8080上。
您可以通过连接到清漆有限状态机的不同过程状态来扩展清漆的配置。
请参阅https://varnish-cache.org/docs/6.0/reference/vcl.html#varnish-配置语言,以了解有关VCL的更多信息。
激活更改
无论何时更新varnish.service
,都需要重新加载systemd
。这是您需要的命令:
sudo systemctl daemon-reload
要激活VCL文件中的更改,您需要运行以下命令:
sudo systemctl reload varnish.service
祝你好运!
看看这里: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