F5ロードバランサーへの着信リクエストでHTTPとHTTPSを検出するための好ましい方法はありますか? iRuleを使用してセキュアと非セキュアを検出し、対応するヘッダーフラグをWebサーバーに渡そうとしています。
これが私たちがこれまでに持っているものです(テストされていません):
when HTTP_REQUEST_SEND {
clientside {
if {[TCP::local_port] == 443} {
HTTP::header replace HTTP_X_FORWARDED_PROTO "https"
}
else {
HTTP::header replace HTTP_X_FORWARDED_PROTO "http"
}
}
}
ご覧のとおり、SSLの検出にはif {[TCP::local_port] == 443} { ... }
を使用していますが、ルールにハードコードされたポートでは扱いにくいと感じています。もっと良い方法はありますか?
おそらく検査:SSL::mode
、HTTP:uri
、または他の何か?
検出したいのは、接続がクライアントSSLプロファイルを使用しているかどうかです。 PROFILE :: exits のDevCentralページは、これを行う方法を示しています。
when CLIENT_ACCEPTED {
if { [PROFILE::exists clientssl] == 1} {
log local0. "client SSL profile enabled on virtual server"
}
}
オリバー