Varnishをアップデートすると設定値が反映されなくなる
という問い合わせを受けて調べた
事前確認
$ varnishd -V varnishd (varnish-6.0.1 revision 8d54bec5330c29304979ebf2c425ae14ab80493c) Copyright (c) 2006 Verdens Gang AS Copyright (c) 2006-2015 Varnish Software AS
バージョン上げ
下記で実施
Install Howto 1. Install GetPageSpeed repository: # yum install https://extras.getpagespeed.com/release-el7-latest.rpm 2. Install varnish rpm package: # yum install --enablerepo=getpagespeed-extras-varnish60 varnish
こうなる
$ varnishd -V varnishd (varnish-6.0.3 revision 7d1ded3aa033a018317dbafc61587026ea2ef8a3) Copyright (c) 2006 Verdens Gang AS Copyright (c) 2006-2019 Varnish Software AS
このあとに再起動するとなぜか /etc/varnish/varnish.params が反映されなくなる
↑ だとバージョンは古いけど、
CentOSなら /etc/varnish/varnish.params が読まれるみたいなのになぁ
原因
/lib/systemd/system/varnish.service の ExecStart が変わってる!!
before
[Unit]
Description=Varnish Cache, a high-performance HTTP accelerator
After=network.target
[Service]
# If you want to make changes to this file, please copy it to
# /etc/systemd/system/varnish.service and make your changes there.
# This will override the file kept at /lib/systemd/system/varnish.service
#
# Environment variables may be found in /etc/varnish/varnish.params
#
# Maximum number of open files (for ulimit -n)
LimitNOFILE=131072
# Locked shared memory (for ulimit -l)
# Default log size is 82MB + header
LimitMEMLOCK=85983232
# On systemd >= 228 enable this to avoid "fork failed" on reload.
#TasksMax=infinity
# Maximum size of the corefile.
LimitCORE=infinity
EnvironmentFile=/etc/varnish/varnish.params
Type=forking
PIDFile=/var/run/varnish.pid
PrivateTmp=true
ExecStart=/usr/sbin/varnishd \
-P /var/run/varnish.pid \
-f $VARNISH_VCL_CONF \
-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \
-T ${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTEN_PORT} \
-S $VARNISH_SECRET_FILE \
-s $VARNISH_STORAGE \
$DAEMON_OPTS
ExecReload=/usr/sbin/varnish_reload_vcl
[Install]
WantedBy=multi-user.target
after
[Unit] Description=Varnish Cache, a high-performance HTTP accelerator After=network-online.target [Service] Type=forking KillMode=process # Maximum number of open files (for ulimit -n) LimitNOFILE=131072 # Locked shared memory - should suffice to lock the shared memory log # (varnishd -l argument) # Default log size is 80MB vsl + 1M vsm + header -> 82MB # unit is bytes LimitMEMLOCK=85983232 # Enable this to avoid "fork failed" on reload. TasksMax=infinity # Maximum size of the corefile. LimitCORE=infinity ExecStart=/usr/sbin/varnishd -a :6081 -f /etc/varnish/default.vcl -s malloc,256m ExecReload=/usr/sbin/varnishreload [Install] WantedBy=multi-user.target
Release Noteには何もなかった
なんだったんだろう
原因がわかるとなんだそれだけかってなるね