Varnish4.1.1がリリースされました。
ドキュメントの修正や、バグフィックスが主ですが幾つかの仕様変更があります。
4.1.0を利用している場合はアップデートをおすすめします。
機能追加
varnishncsaに-fオプションが追加されました
これは単純に-Fで指定するフォーマットをファイルから読み込みができるというだけです。
エスケープ等が面倒な時はよいかもしれないです。
仕様変更
varnishncsaはデーモンで動作する際に-wオプションが必須になりました
-wはファイルに出力するオプションで、通常デーモンで動作させる場合は指定しているものなので特に影響はないかと思います。
If-None-Match(INM)とIf-Modified-Since(IMS)リクエストが同時に来た場合IMSを無視します
この動作自体はRFC7232の3.3に記述されている通りです
(A recipient MUST ignore If-Modified-Since if the request contains an If-None-Match header field)
ステータスコードが1xx, 204, 304の場合はContent-Lengthヘッダをレスポンスしません
これらのステータスコードはbodyを含みませんので不要です。
VCLをネストしてincludeする際のカレントディレクトリをそれぞれのVCLのディレクトリに変更しました
いまいち一文で書くとわかりづらいのですが用はこういうことです。
/etc/varnish/default.vcl /etc/varnish/common/base.vcl /etc/varnish/common/acl/internal.vcl /etc/varnish/common/acl/admin.vcl
例えばVCLをこのように配置していて相対パスでincludeする場合
~4.1.0 ■/etc/varnish/default.vcl vcl 4.0; include "./common/base.vcl"; ■/etc/varnish/common/base.vcl vcl 4.0; include "./common/acl/internal.vcl"; include "./common/acl/admin.vcl";
4.1.0までは基点となる/etc/varnish/を基準とした相対パスで書く必要がありましたが、
4.1.1からは
4.1.1~ ■/etc/varnish/default.vcl vcl 4.0; include "./common/base.vcl"; ■/etc/varnish/common/base.vcl vcl 4.0; include "./acl/internal.vcl"; include "./acl/admin.vcl";
このようにincludeが記述されたVCLのディレクトリを基準として読み込みます。
割と便利だと思います
hit-for-passもgrace動作するようになりました(#1818)
vcl_dir, vmod_dirにコロン区切りで複数のディレクトリを指定できます
varnishreplayが削除されました
少し前からコンパイルされないようになっていたのですがコード自体も削除されました。
バグ修正(一部抜粋)
大きなファイルを扱う際に遅くなっていたのを修正(#1798)
IPv6アドレスのパースに失敗するのを修正(#1801)
PROXYプロトコルを利用した際にvarnishlogが正しく表示されないケースがあったのを修正しました(#1804)
Proxyプロトコルのvxidが0になっていてその影響で-g request, sessionがうまく動きませんでした。
INMリクエストでETagを比較する際に弱い比較関数を使用するようにしました(#1816)
RFC7232に準拠した形です。
vsl-queryでフィールドをfloatsで評価しようとした場合に評価できないのを修正(#1845)
4.1.0からのデグレですが、具体的には”timestamp:resp[2] > 1.”のような絞り込みができなくなってました。