概要 †
リファレンス †
開始 †
when †
- iRule を実行するタイミング
when トリガ {
処理
}
トリガ | 説明 |
RULE_INIT | 最初に処理される、初期化イベント |
HTTP_REQUEST | サーバへのリクエスト |
HTTP_RESPONSE | サーバからのレスポンス |
CLIENT_ACCEPTED | |
CLIENT_CLOSED | |
制御 †
if †
switch †
条件式 (expression) †
文字の条件式 †
条件式 | 説明 |
str1 equals str2 | str1 と str2 が等しければ真 |
str1 contains str2 | str1 に str2 が含まれれば真 |
str1 starts_with str2 | str1 が str2 で始まっていれば真 |
str1 ends_with str2 | str1 が str2 で終わっていれば真 |
整数の条件式 †
条件式 | 説明 |
num1 > num2 | num1 が num2 超なら真 |
num1 < num2 | num1 が num2 未満なら真 |
その他の条件式 †
条件式の条件式 †
条件式 | 意味 | 説明 |
not (expr) | | exprが偽なら真 |
(expr1) and (expr2) | and | expr1 と expr2 が両方真なら真 |
(expr1) or (expr2) | or | expr1 か expr2 のどちらかが真なら真 |
変数 (variable) †
- 定義
set 変数名 値
- グローバル変数の定義
set ::変数名 値
グローバル 変数 †
set ::variable value
配列 †
array set ::variable { }
デフォルト変数 †
変数 | 説明 |
IP::client_addr | クライアントの IP アドレス |
HTTP::host | URL のホスト部 (FQDN) |
HTTP::uri | URL のホスト部以降 |
HTTP::header | HTTP リクエスト ヘッダ |
HTTP::path | |
HTTP::query | |
[clock seconds] | 現在時刻 (UNIX 時刻) |
クラスの読み込み †
- 文字列として読み込み
set variable $::class
値に使えるもの †
値 | 説明 |
[IP::remote_addr] | 送信元 IP アドレス |
[clock seconds] | UNIX 時間 |
- JST に
- expr [clock seconds] + 32400
- フォーマットの変換
- clock format [clock seconds] -format {fmt}
fmt | 説明 |
%Y | 年 (4 桁) |
%y | 年 (2 桁) |
%m | 月 |
%d | 日 |
%u | 曜日 (数字、0 が日曜) |
%H | 時 |
%M | 分 |
%S | 秒 |
処理 †
HTTP †
TCP †
- TCP セッションをクローズさせる
TCP::close
その他 †
pool pool-name
Syslog に出力 †
log facility.priority "message"
ex)
log local0. "Request URI: [HTTP::uri]"
その他 †
時刻フォーマットの変換 †
clock format [clock seconds] -format {format}
フォーマット | 説明 |
%u | 曜日 (0 が日曜日) |
%H | 時間 (24時間表記) |
%M | 分 |
TCL リスト †
- リストの読み込み
lindex $variable num