任意のヘッダーに基づく Apache リバース プロキシ ロジック

任意のヘッダーに基づく Apache リバース プロキシ ロジック

私は、認証、リバース プロキシ、およびバックエンドの 2 つの Web アプリケーション用の SSL ラッパーを提供する NAT FW 上で Apache を実行しています。これは、仮想ホスティングで動作し、リクエストの最上位ディレクトリに基づいてプロキシを戻します (例: https://example.com/app1/ <-> http://app1/app1/)。(図 1 を参照)

リクエストに設定された任意のヘッダーに基づいて、リクエストを Web サービスにプロキシする方法を見つけたいと思います。たとえば、ヘッダー web_service:coolwebservice が設定されている場合は、webservice:8000 にプロキシされます。これは可能ですか?

図1 [Apache:example.com:443 / FW / NAT]
                          |
       ┌------------------┬------------------┐
       | | |
       VVV
[app1:80 /app1/] [app2:8080 /app2/] [web_service:8000]     

答え1

はい、mod_rewrite を使えば絶対に可能です。次のような方法でうまくいくはずです:

RewriteCond %{HTTP:web-service} coolwebservice
RewriteRule ^/(.*) http://web_service:8000/$1 [P,L]

を使用すると%{HTTP:...}、任意のヘッダーを検査し、それに基づいて決定を下すことができます。

関連情報