- PR -

Apacheのmod_proxy設定について

1
投稿者投稿内容
ゆいな
ベテラン
会議室デビュー日: 2006/01/19
投稿数: 89
投稿日時: 2007-11-02 14:51
お世話になります。

Apacheのmod_proxyを利用して
リバースプロキシーの構築を検討しています。

@Client --- AApache + mod_proxy --- BWebサービス

上記の構成で全ての通信路がHTTPの場合は、リバースプロキシーとして
期待する動作を確認できたのですが、@とAの通信はSSLが必須で
AとBはHTTPもしくは、SSLのどちらかにする必要があります。
そこで、それらの通信の組み合わせでもリバースプロキシーとして
期待する動作を確認できるかどうかご教示ねがえれば幸いです。

また、Webサービスはグループウェアのサイボウズを検討していますが、
単純に全てのリクエストをmod_proxyを経由して
サイボウズに飛ばすというのができました。
ちなみに、httpd.confは以下に設定しています。

-----
ProxyPass / http://sp.jp/
ProxyPassReverse / http://sp.jp/
-----

次に、サイボウズのログイン画面を隠蔽したいという要件があるため
ログイン画面のURLの時は、proxy上の内部のCGIに
飛ばしたいのですがうまくいきません・・・。

サイボウズのログイン画面URLは
 http://10.225.16.xxx/cgi-bin/cbag/ag.exe?
で、その他の業務画面のURLは
 http://10.225.16.xxx/cgi-bin/cbag/ag.exe?page=Schedule.......
となっていて、ag.exeまでが変わらないので、
全てのリクエストがCGIに飛ばされてしまうようです。

ちなみに、httpd.confは以下に設定しています。
-----
ProxyPass /cgi-bin/cbag/ag.exe http://localhost/cgi-bin/printenv
ProxyPassReverse /cgi-bin/cbag/ag.exe http://localhost/cgi-bin/printenv
-----

そこで、クエリーがない時はCGIをキックし、
クエリーがある時はリバースプロキシーを行うか、
URL以外のそれらを切り分けられるのであればOKかもしれませんが
具体的な方法がわからず、前に進めない状況です。

こちらについても何かアドバイスなどいただければ幸いです。

よろしくお願いします。
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2007-11-02 20:19
こんばんは。
引用:
(1)と(2)の通信はSSLが必須で
(2)と(3)はHTTPもしくは、SSLのどちらかにする必要があります。
そこで、それらの通信の組み合わせでもリバースプロキシーとして
期待する動作を確認できるかどうかご教示ねがえれば幸いです。


であれば、mod_ssl もロードして、SSLを有効にすれば良いと思います。
(2),(3)間のSSL通信には、リバースプロキシとしては対応する機能がなかったと思います。

引用:
そこで、クエリーがない時はCGIをキックし、
クエリーがある時はリバースプロキシーを行うか、
URL以外のそれらを切り分けられるのであればOKかもしれませんが
具体的な方法がわからず、前に進めない状況です。


mod_proxy単独ではなく、mod_rewrite も併用して、条件を設定すれば良いと思います。
その場合は、ProxyPass等ではなく、RewriteRuleを\[P\]フラグとともに使用することになります。
で、リクエストされた URL に、? 以降が付いているかどうかは、RewriteCond で、%{QUERY_STRING} あたりを条件として使えばいけそうに思います。
mod_rewrite の機能をまずはご覧になってはいかがでしょうか。
ゆいな
ベテラン
会議室デビュー日: 2006/01/19
投稿数: 89
投稿日時: 2007-11-06 20:39
お世話になります。

ご回答ありがとうございました。
ご教示いただいた情報をもとに試してみたいと思います。

ですが、昨夜から検証用のOSが起動しなくなり、
試行錯誤の末、OSの再インストールを行う必要が出てしまいました。
結果につきましては、別途ご報告させていただきます。
よろしくお願いします。
ゆいな
ベテラン
会議室デビュー日: 2006/01/19
投稿数: 89
投稿日時: 2007-11-30 13:32
お世話になります。

mod_rewrite を併用して、条件を記述する事で
期待していた動作が実現できました。

ありがとうございました。

1

スキルアップ/キャリアアップ(JOB@IT)