tech note

インフラ技術や車についてつぶやいていくブログ

BIG-IP iRule デフォルトで用意されている「_sys_https_redirect」の動作解説

f:id:tea_cat:20180911023333j:plain

デフォルトで入っている以下iRuleの解説を
_sys_https_redirect

when HTTP_REQUEST {
       HTTP::redirect https://[getfield [HTTP::host] ":" 1][HTTP::uri]
    }

getfieldってのは以下の通り文字列を区切り文字で割った何個目を参照するかですね。

https://devcentral.f5.com/wiki/irules.getfield.ashx?lc=1

getfield <string> <split> <field_number>

awk -F : '{print $1}'」と同じです

なので以下のようなパースが可能になります。

example.com:81 → example.com

[HTTP::host] HTTP host:ヘッダーの値を取り出す

[HTTP::uri] URLの/index.htmlのようなURIを取り出す

HTTP::redirect 302です

結果、https(443ポート)へURLを引き継いだままリダイレクトできるのです。