Сервер JBoss и сервер CouchDB за обратным прокси-сервером Apache - PullRequest
2 голосов
/ 24 августа 2011

У меня есть два сервера на моей локальной машине. Одним из них является сервер JBoss, работающий через порт 8080 а другой сервер CouchDB работает на порту 5894. Я могу получить доступ к каждому из них по адресу localhost: 8080 и localhost: 5984 соответственно. Из-за ограничений в том же домене ajax, Мне нужно получить доступ к jboss и couchdb с сайта example.com или хотя бы к couchdb с example.com/couch. Я слышал и читал Конфигурация обратного прокси этого Apache может помочь с этим. Но пока я не могу заставить его работать. Я использую Apache 2.2.19 на Win32. Может кто-нибудь помочь с конфигом, чтобы добиться этого?

Ответы [ 2 ]

2 голосов
/ 24 августа 2011

Если вы используете CouchDB v1.1.0, у него есть встроенный прокси. Возможно, это может быть ваш основной веб-сервер, обрабатывающий некоторые запросы и пересылающий остальные в JBoss? Существуют некоторые ограничения, в первую очередь, из-за того, что у вас нет такого сложного управления, как httpd mod_rewrite.

Войдите в интерфейс администрирования Futon (/_utils). В разделе конфигурации нажмите «Добавить новый раздел» в самом низу. Раздел httpd_global_handlers; выбор за вами, например: /_jboss; и значение является выражением Эрланга, {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 на /couch, это также возможно при использовании CouchDB vhost , а также некоторых правил перезаписи . (Они намного проще, чем Apache httpd mod_rewrite).

1 голос
/ 24 августа 2011

модуль mod_proxy и что-то подобное?

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

ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...