Transform Rules について
先日 Page Rules のアナウンスメントについてまとめました。
今日は Transform Rules について触っていきます。Transform Rules とは
リクエストと応答の URI パス、クエリ文字列、HTTP ヘッダーを変換することが出来ます。4つの機能が備わっています。
- Rewrite URL rules:
HTTP リクエストの URL パスとクエリ文字列を書き換えます。 - HTTP request header modification rules:
HTTP リクエストヘッダーの値を設定するか、リクエスト ヘッダーの削除を行います。 - HTTP response header modification rules:
HTTP 応答ヘッダーの値を設定するか、応答ヘッダーを削除します。 - Managed Transforms:
HTTP リクエスト ヘッダーとレスポンス ヘッダーの一般的な調整を実行します。
さっそくやってみる
まずはOriginを立てましょう。
テスト用にindex.html
をコピーしてindex2.html
にしておきます。
cd /usr/share/nginx/html
sudo cp index.html index2.html
index.html
は予約されており正しく動作しないためです。
├── 404.html
├── 50x.html
├── icons
│ └── poweredby.png -> ../../../pixmaps/poweredby.png
├── index.html
├── index2.html
├── nginx-logo.png
└── poweredby.png -> nginx-logo.png
Rewrite URL rules
Create rule
をおして適当な名前を付けます。
このように設定を行いSave
を押します。
この状態でindex2.html
にアクセスを行うとpoweredby.png
が表示されます。
この際ブラウザにはhttps://transform.a.harunobukameda.com/index2.html
と引き続き表示されています。これがRedirectと異なる点です。Statusも200になっています。
次に先ほどのルールをさらにカスタマイズして以下のようにQuery Stringの書き換えを設定します。
この状態で例えばhttps://transform.a.harunobukameda.com/index2.html/page=kameda
にアクセスしてみるとログには、以下のように表示されています。
172.70.222.101 - - [25/Jun/2024:01:55:42 +0000] "GET /poweredby.png?page=1234 HTTP/1.1" 200 368 "-" "Mozilla/5.0 (Windows NT 10.0; Win64
; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36" "2a09:bac5:4455:1191::1c0:256"
Query Stringが書き換わっていることがわかります。
Modify Request Header
次にModify Request Header
です。変更可能なヘッダーの一覧はここで定義されています。
それ以外にX-で始まるカスタムヘッダを付与させることもできます。
例えば以下のように設定した場合、
ログにはこのように出力されます。
162.158.119.252 - - [26/Jun/2024:00:31:44 +0000] "GET /index.html HTTP/1.1" 200 615 "-" "unknown" "2a09:bac5:4455:dc::16:18a"
一つ注意点ですが、ブラウザから上がってくるリクエストヘッダとnginxのログで出力されるヘッダーの値は異なり、さらにCloudflareドキュメントでの値も異っています。(なぜ?かは不明です。すいません)例えばUser-Agent
の場合、
- ブラウザ:User-Agent (これが正しい正式名称)
- nginx: http_user_agent
- Cloudflareドキュメント:http.user_agent
設定では、ブラウザの値を使用してください。
Modify Response Header
HTTPレスポンスヘッダを追加もしくは上書きを行います。
利用可能なヘッダの一覧はこちらです。
それ以外にX-で始まるカスタムヘッダを付与させることもできます。
このようにセットすることで任意のクッキー値やカスタムヘッダをセット可能です。
Managed Transforms
セキュリティやプライバシー対策の一環としてよく使われる機能をトグルボタンのみで利用可能となっているものです。
以下に一覧の説明があります。
Discussion