web-dev-qa-db-ja.com

Apache mod_proxy:httpヘッダーに基づくリダイレ​​クト?

Httpリクエストヘッダー値に基づいて、httpトラフィックを特定のバックエンドサーバーに転送できるかどうか疑問に思いました。例の「リファラー」httpヘッダー値。

2つのサーバーインスタンスがあります。 1つはUAT(テスト)用で、もう1つは実稼働前の使用用です。これら2つのサーバーインスタンスの前にApacheリバースプロキシを配置したいと考えています。そして、httpリクエストが来たら、「referer」httpヘッダー(uatまたはpre-prod)の値に基づいて、リバースプロキシがリクエストを正しいバックエンドサーバーインスタンスに送信するようにしたいと思います。

これは可能ですか?

ありがとう

3
Dan

はい、可能です。

REFERERヘッダーの条件チェックに基づいて書き換えルールを作成します。

RewriteCondのドキュメント

%{HTTP:header}(headerは任意のHTTP MIMEヘッダー名にすることができます)は、常にHTTP要求で送信されたヘッダーの値を取得するために使用できます。例:%{HTTP:Proxy-Connection}は、HTTPヘッダー `` Proxy-Connection: ''の値です。

RewriteCond %{HTTP:Referer} =="xyz.com/abcd"
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
2
Dti

より正確にするために、より多くの情報(つまり、より正確な例)が必要になる場合がありますが、ここで作業する必要があります。

RewriteCond %{HTTP:Referer} webapp-uat
RewriteRule (.*) http:/uat-backend/$1 [P,L]

RewriteCond %{HTTP:Referer} webapp-qa
RewriteRule (.*) http:/qa-backend/$1 [P,L]

それがあなたが始めるのに十分であることを願っています。

0
Unbeliever