Varnish3.0.3が公開されました。
今回の変更は多くのバグフィックスとツール系の機能拡充とドキュメントの整備です。
公式リリースノート varnish-cache-3.0.3
バグフィックス
・ストリーミングと正規表現の評価においてクラッシュの要因となるバグを複数修正しました。
・ESIとGZIPにおいて壊れたオブジェクトを返却するケースが存在する問題を修正しました。
・ESIのremoveタグ内にHTMLのコメントがあるケースにおいて不適切な削除を行なっていたのを修正
・ban lurkerのスリープする条件の変更(回収した際は設定値・回収しなかった場合は1秒)
・多くのクラッシュの要因になるバグの修正
・その他いろいろ修正
ツール系の機能拡充
varnishstat
・json出力オプションの追加(-j)
varnishtest
・resp.bodyでレスポンスボディの評価が可能に
varnishncsa
・VCL中に”Key:Value”の形式でログを出力すると%{VCL_Log:Key}xで取得可能に
6 | [root@localhost ~]# varnishncsa -F "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\" \"%{VCL_Log:hoge}x\"" |
7 | 192.168.1.199 - - [21/Aug/2012:08:46:27 +0900] "GET http://192.168.1.199:6081/ HTTP/1.0" 200 5 "-" "Wget/1.12 (linux-gnu)" "mage" |
・%{format}tの対応
1 | [root@localhost ~]# varnishncsa -F "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\" \"%{%Y%m%d%H%M%S}t\"" |
2 | 192.168.1.199 - - [21/Aug/2012:08:51:54 +0900] "GET http://192.168.1.199:6081/ HTTP/1.0" 200 5 "-" "Wget/1.12 (linux-gnu)" "20120821085154" |
・formart指定中に\tと\nの指定が可能に
1 | [root@localhost ~]# varnishncsa -F "%h AAA\tBBB\nCCC" |
cli
・backend.listが追加されました
バックエンドの状態を確認することができます
02 | director default random{.retries = 5; |
03 | {.weight = 5;.backend={.host="127.0.0.1";.port="81";}} |
04 | {.weight = 5;.backend={.host="127.0.0.1";.port="82";}} |
09 | Backend name Refs Admin Probe |
10 | default[0](127.0.0.1,,81) 1 healthy Healthy (no probe) |
11 | default[1](127.0.0.1,,82) 1 healthy Healthy (no probe) |
・backend.set_healthが追加されました
バックエンドの状態を強制的に変更できます
8 | backend.set_health default sick |
02 | director default random{.retries = 5; |
03 | {.weight = 5;.backend={.host="127.0.0.1";.port="81";}} |
04 | {.weight = 5;.backend={.host="127.0.0.1";.port="82";}} |
08 | backend.set_health[0] sick |
11 | backend.set_health sick |
パラメータの変更
・http_range_support (BOOL default:ON)
rangeリクエストのサポートですがEXPERIMENTALから正式になりました。
ただ3.0.0からデフォルトでONになっていたので、特に気にすることはないと思います。
・send_timeout (sec default:600)
送信時のタイムアウト時間が60秒から600秒に変更されました。
idle_send_timeoutでアイドルの設定ができるようになった影響で増えてると思います。
・diag_bitmap (bitmap default:0)
ban-lurkerのデバッグ用の指定が増えました(0x00080000)
・redhat用のsysconfigでVARNISH_MIN_THREADSが1から50に
デフォルト値がよくなりました
パラメータの追加
通信に関わるパラメータ
・idle_send_timeout (sec default:60)
送信時にアイドル状態(データの送信ができなくなった)になった場合のタイムアウト時間です
内部での正規表現の呼び出しについての制限
・pcre_match_limit (1~UINT_MAX default:10000)
呼び出し回数の制限
・pcre_match_limit_recursion (1~UINT_MAX default:10000)
再起回数の制限
ドキュメントの整備
その他変更
・EL6用RPMの用意
・DNSディレクターにおいてポートの指定がない場合はデフォルトで80を使うようになった
・libvarnishapiの変更
・ABIが変わったのでVMODのリビルドが必要
・内部関数の定義が変わってるので一部のインラインCやVMODが動かなくなる可能性アリ(HTC_Readが個人的に痛い)
多くのバグ修正を含んでいるため適用するのが良いかと思います。