Varnish

提供: ArchWiki
ナビゲーションに移動 検索に移動

Varnish Cache はキャッシュ HTTP リバースプロキシとして有名なウェブアプリケーションアクセラレータです。HTTP を使用するあらゆるサーバーと組み合わせてコンテンツをキャッシュすることができます。

インストール

varnish パッケージをインストールしてください。

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 ファイルを手動でロードしてみてください:

  1. varnish コンソールに接続:
    $ varnishadm -T localhost:6082
  2. デフォルトの VCL をロード。バックエンドが存在することを確認してください:
    varnish> vcl.load default /etc/varnish/default.vcl
  3. VCL を有効にする:
    varnish> vcl.use default
  4. 子プロセスを起動 (任意):
    varnish> start