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 ヘッダ

関連

Published by in Linux, Web 技術, インストール, オープンソース, スケーラビリティ and リバースプロキシ using 232 words.