Varnish の設定ファイルである VCL はどういうものか(4)

今回も Varnish VCL の説明で の続きです。特に Varnish で使われている VCL 言語のうち VCL で使える変数について説明します。


VCL で使える変数

既に で簡単な Varnish VCL で使える変数について説明しましたが、今回は網羅的に掲載していきます。結構 Varnish ドキュメントの日本語訳なだけになってしまっているかもしれません。

now
現在時刻

.host
バックエンドの(取れれば)ホスト名か IP アドレス

.post
バックエンドのポート番号

client
クライアントを意味する変数でこれ単体では使えない

client.ip
クライアントの IP アドレス

client.identity
クライアントの識別子

server
(Varnish が動いている)サーバを意味する変数でこれ単体では使えない

server.hostname
サーバのホスト名

server.identity
サーバの識別子

server.ip
サーバの IP アドレス

server.port
サーバのポート番号

req
リクエストを意味する変数でこれ単体では使えない

req.request
“GET” や “HEAD” 等のリクエストのタイプ(メソッド)

req.url
リクエスト URL

req.proto
クライアントが使っているリクエスト HTTP プロトコルのバージョン

req.backend
リクエストを処理するバックエンド

req.backend.healthy
リクエストを処理するバックエンドが稼働しているか否か

req.http.header
HTTP ヘッダ

req.hash_always_miss
true を設定すれば必ずキャッシュミスさせる

req.hash_ignore_busy
キャッシュ検索時にバックエンド側で待機状態であっても無視する

req.can_gzip
クライアントが gzip 圧縮を受け付けるか

req.restarts
リクエストが restart した回数。restart はバックエンドからのコンテンツ取得失敗時等に発生し、vcl_rect に毎回戻る

req.esi
false が設定されると ESI が使えなくなる。ESI は SSI を拡張した規格

req.esi_level
ESI のレベルを指定する

req.grace
grace モードを有効にする期間を指定する

req.xid
リクエストのユニークな ID

req.hash
取得したコンテンツ(キャッシュオブジェクト)の hash キー

bereq
バックエンドへのリクエストを意味する変数でこれ単体では使えない

bereq.request
バックエンドへのリクエストのタイプ(”GET” や “HEAD” 等)

bereq.url
バックエンドへのリクエストの URL

bereq.proto
バックエンドへのリクエストの HTTP プロトコルバージョン

bereq.http.header
バックエンドへのリクエストの HTTP ヘッダ

bereq.connect_timeout
バックエンドへのコネクションタイムアウト(秒)

bereq.first_byte_timeout
バックエンドから最初の byte を取得するまでのタイムアウト(秒)。pipe モードの時は使えない

bereq.between_bytes_timeout
バックエンドからそれぞれの byte を取得するまでのタイムアウト(秒)。pipe モードの時は使えない

beresp
バックエンドからのレスポンスを意味する変数でこれ単体では使えない

beresp.do_stream
キャッシュを検索せずにクライアントに直接バックエンドから取得したコンテンツを配送するかどうか。

beresp.do_esi
バックエンドからコンテンツを取得した後に ESI を処理するかどうか。デフォルトは false

beresp.do_gzip
バックエンドからコンテンツを取得した後に Gzip 圧縮するか。デフォルトは false

beresp.do_gunzip
バックエンドからコンテンツを取得した後に unzip 圧縮するか。デフォルトは false

beresp.proto
バックエンドへのリクエストに使われた HTTP プロトコルバージョン

beresp.status
サーバによって返される HTTP ステータスコード

beresp.response
サーバによって返される HTTP ステータスメッセージ

beresp.ttl
バックエンドから取得したコンテンツの生存期間(秒)

beresp.grace
grace モードを有効にする期間が設定可能

beresp.saintmode
saint モードを有効にする期間が設定可能

beresp.backend.name
コンテンツを取得したバックエンドの名称

beresp.backend.ip
コンテンツを取得したバックエンドの IP アドレス

beresp.backend.port
コンテンツを取得したバックエンドのポート番号

beresp.backend.storage
取得したコンテンツをストレージに強制的に保存する

obj
キャッシュに入ったオブジェクトを意味する変数でこれ単体では使えない

obj.proto
コンテンツ取得時の HTTP プロトコルバージョン

obj.status
コンテンツ取得時の HTTP ステータスコード

obj.response
コンテンツ取得時の HTTP ステータスメッセージ

obj.ttl
コンテンツの生存期間(秒)

obj.lastuse
コンテンツを使ってから経過した時間

obj.hits
コンテンツを使った(ヒットした)回数

obj.grace
コンテンツの grace モードの期間(秒)

obj.http.header
コンテンツの HTTP ヘッダ

resp
レスポンスを意味する変数でこれ単体では使えない

resp.proto
レスポンスの HTTP プロトコルバージョン

resp.status
レスポンスの HTTP ステータスコード

resp.response
レスポンスの HTTP ステータスメッセージ

resp.http.header
レスポンスの HTTP ヘッダ

【お勧め】リバースプロキシ関連の記事

No Comments - Leave a comment

Leave a Reply

Your email address will not be published. Required fields are marked *

*