Varnish
Varnish Cache はキャッシュ HTTP リバースプロキシとして有名なウェブアプリケーションアクセラレータです。HTTP を使用するあらゆるサーバーと組み合わせてコンテンツをキャッシュすることができます。
インストール
Varnish のカスタマイズ
デフォルトでは、varnish はバックエンドとして localhost:8080 を使うように /etc/varnish/default.vcl
で設定されており、デフォルトの systemd の varnish.service
ファイルによって default.vcl
が使われるようになっています:
/usr/lib/systemd/system/varnish.service
[Unit] Description=Web Application Accelerator After=network.target [Service] ExecStart=/usr/bin/varnishd -a 0.0.0.0:80 -f /etc/varnish/default.vcl -T localhost:6082 -s malloc,64M -u nobody -g nobody -F ExecReload=/usr/bin/varnish-vcl-reload [Install] WantedBy=multi-user.target
systemctl enable で自動で起動するようにシンボリックリンクを作成できます:
$ systemctl enable varnish ln -s '/usr/lib/systemd/system/varnish.service' '/etc/systemd/system/multi-user.target.wants/varnish.service'
systemctl edit を使うことでユニットファイルを編集することができます:
$ systemctl edit varnish.service
ExecStart を上書きしたいときはまず空の ExecStart 行を記述してから新しい値を設定する ExecStart を追加してください。例:
[Service] ExecStart= ExecStart=/usr/bin/varnishd -j unix,user=nobody -F -a :6081 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,1G
また、/etc/varnish/default.vcl
ファイルに変更を加えたときは varnish をリロードする必要があります:
$ systemctl reload varnish.service
もしくは再起動してください:
$ systemctl restart varnish.service
手動で VCL をロード
VCL 設定のリロードに失敗する場合、VCL ファイルを手動でロードしてみてください:
- varnish コンソールに接続:
$ varnishadm -T localhost:6082
- デフォルトの VCL をロード。バックエンドが存在することを確認してください:
varnish> vcl.load default /etc/varnish/default.vcl
- VCL を有効にする:
varnish> vcl.use default
- 子プロセスを起動 (任意):
varnish> start