2011-08-24 16 views
2

ローカルマシンに2台のサーバーがあります。 1つはポート8080で動作するJBossサーバー で、もう1つはポート5894で動作するCouchDBサーバーです。それぞれ localhost:8080とlocalhost:5984でそれぞれアクセスできます。 ajaxの同じドメイン制限のため、 jbossとcouchdbの両方にexample.comからアクセスするか、少なくともexample.com/couchのcouchdbにアクセスする必要があります。私は聞いて、 を読んで、Apacheのリバースプロキシ設定がこれを助けることができると思います。しかし、これまで私はそれを働かせることができませんでした。 私はWin32上でApache 2.2.19を実行しています。誰かがこれを達成するための設定を手伝うことができますか?Apacheリバースプロキシの背後にあるJBossサーバーとCouchDBサーバー

+1

私はこれをserverfault.comに移行するように投票しました。私はそれが移行するかどうかわからないが、Apache httpd、reverse-proxying、mod_rewriteについて質問する方が良いかもしれない。そのサイトは常にそのことをする人でいっぱいです。 – JasonSmith

答えて

1

mod_proxyモジュールのようなものですか?

ProxyPass /couch/ http://localhost:5894/ 
ProxyPassReverse /couch/ http://localhost:5894/ 

ProxyPass/http://localhost:8080/ 
ProxyPassReverse/http://localhost:8080/ 
+0

これは私のためには機能しません。それらは別々のapache仮想ホストの下で定義されるべきですか?例えば、httdp.confの一番下に置くべきですか? – biafran

+0

はい、別のVirtualHostセクションにあります。 – balent

2

CouchDB v1.1.0を使用している場合は、プロキシが組み込まれています。おそらく、これは主なWebサーバーであり、いくつかのクエリを処理し、残りの部分をJBossに転送することができますか?いくつかの制限があります。主に、httpd mod_rewriteのような洗練されたコントロールがないと主張します。

布団管理インターフェース(/_utils)にログインします。設定セクションで、一番下にある「新しいセクションを追加」をクリックします。セクションはhttpd_global_handlersです。オプションはあなた次第です。例:/_jboss;値はErlangの式{couch_httpd_proxy, handle_proxy_req, <<"http://127.0.0.1:8080">>}です。 (もちろん、あなたが望む任意のURLを選択することができますが、この例では動作するはずです。)

あなたはまた、直接のHTTP APIを介してこれを設定することができます

PUT /_config/httpd_global_handlers/_jboss HTTP/1.0 
Content-Type: application/json 

"{couch_httpd_proxy, handle_proxy_req, <<\"http://127.0.0.1:8080\">>}" 

を今、あなたはCouchDBのを照会するとき、すべてがちょうど前のようなものです。しかし、新しいURLスペース/_jboss/*があり、CouchDBとJBossを介して直接プロキシされます。

あなたはJBossが/になるようにとのCouchDBは、CouchDBのバーチャルホストともいくつか書き換えルールを使用しても可能である/couchにする必要がある場合

。 (これらはApache httpd mod_rewriteよりはるかに簡単です)。

+0

申し訳ありませんが、私はcouchdb 1.0.2を使用しています。また、私は、Apacheのhttpdの層でプロキシを持つことを好むでしょう。私はApacheのhttpdを削除して、以前のようにjbossを動作させたいと思っています(唯一の変更は8080ではなく80から聞いています)。また、couchdbの依存関係やhttpdを削除して、いつものように私のjbossを働かせたいと思っています。 – biafran

+0

おそらく私はいくつかの追加情報を追加する必要があります。私のjbossサーバーには、2つのWebアプリケーションがあります。私は仮想ホスティングを使って、www.site1.comとwww.site2.orgにアクセスできるようにしています。今、私は永続性のためにwww.site2.orgでcouchdbが必要です。同じ発信元ポリシーのため、httpdを追加してwww.site2.org/couchdbのcouchdbにアクセスできるようにしたいと思います。たぶん私は何か間違っているのは、httpdプロキシがjboss仮想ホスティング(www.site2.org)で定義されたURLを処理するようにしようとしているからです。 – biafran

関連する問題