У нас есть несколько нестандартный веб-сервер: он обслуживает данные пользователя на основе IP-адреса пользователя. Данные пользователя хранятся в нескольких базах данных; каждая база данных хранит информацию о подмножестве пользователей. Пользователи имеют данные только в одной базе данных. Существует одна основная база данных, которая сообщает вам, где находится каждый пользователь.
Из-за внешних факторов веб-сервер должен быть заменен отдельным компьютером для каждой базы данных. Было бы легко настроить обратный прокси, который разделяет запросы между серверами. Однако решение, на какой сервер перенаправить запрос, зависит от записи в базе данных master.
Существует ли обратный прокси-сервер, который позволяет сценарию решать, какой внутренний сервер должен обрабатывать конкретный запрос?
Кальмар может легко сделать это с его url_rewrite_program
и location_rewrite_program
параметры.
Например, создайте сценарий Perl, например
#!/usr/bin/perl -w
$!=1;
while (<>) {
s@foo@bar@g;
print;
}
и сохраните это как / USR / местные / бен / mysquidrewriter. Приведенный выше сценарий заменит все фу вхождения в URL как бар. Для фактического материала SQL вам, конечно, необходимо изменить этот сценарий. :-)
Затем добавьте в squid.conf строку вида
url_rewrite_program /usr/local/bin/mysquidrewriter
Когда вы перезапускаете Squid, он запускает несколько фоновых процессов mysquidrewriter, и каждый URL-адрес, который должен обслуживать Squid, будет обрабатываться через них. Я делал это много раз, и это прекрасно работает.