Мне нужно переписать URL-адрес, чтобы направить запрос к различным внутренним серверам на основе параметра запроса, используя текстовую карту (queryparam servername).
Я пробовал RewriteMap, RewriteRule с prg: type и perl-скриптом. Но строка запроса не отображается в сценарии поиска.
например файл карты
QS1 Server1
QS2 Server1
QS3 Server3
QS4 Server4
etc.. (about 10K entries -= mapping to about 20 backend servers)
Если входной URL-адрес http://myrouter.com:8080/a/b/c?query=QS2
затем его нужно переписать и отправить на http: // Server1: 9988 / a / b / c? query = QS2 (да со строкой запроса)
http://myrouter.com:8080/a/b/c?query=QS4 отправлен в http: // Server4: 9988 / a / b / c? query = QS4
Мои текущие испытания, похоже, не помогают.
RewriteEngine on
RewriteMap distributeRequests "prg:/export/requestdistributor.pl"
RewriteRule ^(.*)$ ${distributeRequests:$1?%{QUERY_STRING}} [P]
Я искал прокси на основе параметра в URL-адресе. Но это хорошо для ограниченного набора записей поиска; не для отображения параметров запроса 10K на 10 внутренних серверов, которые я ищу.
Спасибо.