Назад | Перейти на главную страницу

Обратный прокси-сервер, который позволяет явно определять сопоставление на основе URI запроса?

Я ищу решение обратного прокси, которое либо:

a) Позвольте мне явно определить, какие запросы идут на какие серверы на основе регулярного выражения (или другого аналогичного способа определения того, что определенные шаблоны URL отображаются на определенные внутренние серверы)

ИЛИ

б) Поддерживает какой-то хеш-алгоритм для проксирования, чтобы запросы для данного URL-адреса всегда отображались на один конкретный сервер, и публикует этот алгоритм, чтобы я мог использовать его в своем приложении, чтобы определить, на какой сервер будет сопоставлен данный URL.

Что-нибудь подобное? Или мне нужно написать свое ...?

Что касается полнофункциональных веб-серверов с возможностями прокси, и Apache, и nginx могут удовлетворить вариант a.

В Apache вы хотели бы использовать возможность прокси-сервера mod_rewrite:

RewriteRule /(location[1-5]*\.html)$ http://sourceserver.example.com/$1 [P]

В nginx вы просто используете регулярное выражение для своей директивы местоположения - см. Вот

Для варианта B большинство прокси, реализующих вариант хеширования, используют противоположный подход; убедитесь, что все запросы от данного клиента отправляются на один и тот же сервер для поддержания состояния сеанса. Не могли бы вы подробнее рассказать, почему это было бы желательно?

Уверен, что вы тоже можете сделать это с помощью haproxy, см. http://code.google.com/p/haproxy-docs/wiki/MatchingLayer7

Предыдущий вопрос о сбое сервера: выберите серверный бэкэнд для некоторого URL-адреса с помощью haproxy есть пример.

Разумно это или нет, я не знаю. Вероятно, не смотрит на другой ответ и предупреждение в документации haproxy.