Я хотел бы прокси-сервер, который "перенаправляет" на два сервера разработки - PullRequest
0 голосов
/ 29 марта 2011

Резюме:

Все разработки находятся на моей локальной машине.У меня на компьютере работает два сервера разработки.Я хотел бы использовать эти серверы разработки, как если бы они были одним.Какой самый простой способ сделать это?

Подробности

У меня есть два сервера разработки.Один сервер - сервер разработки Sproutcore (содержит приложение, css, изображения, что угодно).Другой сервер - сервер разработки App Engine (содержит данные).Сервер механизма приложений имеет ограниченное количество способов доступа к нему.Оба этих сервера разработки работают на отдельных портах на моей машине.

Допустим, у меня есть регулярное выражение под названием X, которое указывает все URL-пути, которые можно использовать для доступа к серверу механизма приложений.

Мне нужен прокси-сервер, который будет пересылать все пути http-запросов, соответствующих X, на сервер App Engine и все несоответствующие пути на сервер Sproutcore.

Пример:

Если мой прокси-сервер localhost: 8080

И мой сервер ядра приложений localhost: 8081

И мой sproutcore-сервер localhost: 8082

И у меня есть регулярное выражение, которое соответствует "/ dogs / _the_dogs_id" (где _the_dogs_id - целое число)

Если я сделаю запрос localhost: 8080 / js / application.js Я ожидаю, что он перейдет на сервер sproutcore (поскольку он не соответствует регулярному выражению)

Если я сделаю запрос localhost: 8080 / собак / 7 я работаюВы можете ожидать, что для перехода на сервер механизма приложений (поскольку он соответствует регулярному выражению)

Что касается моего (клиентского) запроса, я запрашиваю только localhost: 8080 для всех этих ресурсов.Прокси-сервер молча перенаправляет их в правильный пункт назначения.Сохранение типа запроса, данных, заголовков и т. Д. Мне просто нужно переслать его, основываясь на пути запроса url.

Есть ли простой способ настроить такой прокси-сервер?Это было бы очень полезно для веб-разработки.

Спасибо

Ответы [ 2 ]

0 голосов
/ 31 марта 2011

На самом деле, при дальнейшем исследовании выясняется, что Sproutcore поставляется со встроенной функциональностью, чтобы сделать именно это.Просто действительно впечатляет, как они думают об этих мыслях раньше времени.Добавить прокси к определенному маршруту так же просто, как добавить следующие строки под комментарием «# SET UP PROXY» (в вашем файле сборки)

# ===========================================================================
# Project: Todos
# ===========================================================================

# Add initial buildfile information here
config :all, :required => :sproutcore

# SET UP PROXY
proxy "/task", :to => "localhost:8000"
proxy "/tasks", :to => "localhost:8000"

Действительно не может быть намного проще.Мне также очень нравится это, потому что это портативное решение.Это отличие от решений, требующих другой зависимости (например, Apache).

0 голосов
/ 29 марта 2011

mod_rewrite FTW

http://httpd.apache.org/docs/current/mod/mod_rewrite.html

Этот модуль использует механизм перезаписи на основе правил (на основе анализатора регулярных выражений) для перезаписи запрошенных URL-адресов на лету

Вы определяете регулярное выражение, соответствующее URL-адресу, а затем перезаписываете его туда, куда хотите перенаправить запрос.

Также, для пояснения, механизм, который вы описываете, называется «Обратный прокси»: http://en.wikipedia.org/wiki/Reverse_proxy

-tjw

...