2009-03-09 6 views
2

Мой сайт растет. Мне нужно разбить набор функций на разные группы серверов вместо того, чтобы все функции запускались на одной копии сервера. У меня 8 одинаковых серверов в настройке балансировки сетевой нагрузки Windows.Разделение сайтов и URL-адрес

Проблема в следующем: мне нужно, чтобы пространство URL было одинаковым. Что было бы приемлемым решением? Я не хочу запускать новые домены для наборов функций. Я думаю о каком-то обратном прокси с некоторыми возможностями переписывания/маршрутизации на основе URL (?!?). Любые рекомендации с точки зрения программного обеспечения или оборудования? Это заменит настройку WNLB, поскольку у нее нет необходимых возможностей.

ответ

1

Есть действительно несколько решений для реализации балансировки нагрузки:

  1. DNS Round-Robin
  2. DNS балансировки нагрузки (с lbnamed)
  3. Proxy Round-Robin
  4. Hardware/TCP Round-Robin

Я понял 1) и 2) здесь не вариант, поэтому ... если у вас есть деньги и действительно высокие требования к производительности, переход на 4). Остальное, идите на 3).

Для прокси Round-Robin снова возможны несколько решений: Apache mod_rewrite, Apache mod_proxy, Squid (и, конечно, многие другие, которые я не знаю).

  • Для "немой" нагрузки balacing, есть пример в Apache mod_rewrite-х URL Rewriting Guide (см Proxy Throughput Round-Robin раздел).

  • Apache mod_proxy может выступать в качестве прокси для подключения клиентов к Интернету, но обычно используется в качестве обратного прокси для перенаправления URL-адреса на другой сервер. Он не имеет функции кеширования (но может использоваться с mod_cache и mod_rewrite ...).

  • Squid - это прокси-кеш и обычно используется для подключения клиентов к Интернету. Но он также может использоваться как обратный прокси и быть настроен для кэширования запросов и ускорения доставки контента.

Как вы можете видеть, выбор одного из них зависит от того, что и как вы хотите прокси. В вашем случае я бы рассмотрел запуск Apache mod_proxy или Squid, если вы хотите кэшировать Linux (если это опция).

Что касается аппаратного обеспечения, я не специалист, но я думаю, что достаточно «малого» для «среднего» выделенного сервера. Просто не забывайте, что все запросы пройдут через эту машину, поэтому ее размер зависит от вашего трафика, который кажется приличным. Это может потребовать некоторого рытья с данными реальной жизни.

0

Если у вас есть 8 серверов, я бы предложил использовать 7 из них для совместного использования рабочей нагрузки и использования одного внешнего сервера для работы в качестве прокси.

Ваш сервер с интерфейсом может запускать Apache и использовать mod_proxy для делегирования каждого HTTP-запроса на один из 7 внутренних серверов. Вы можете установить mod_proxy для делегирования работы на основе входящего URL-адреса, если вам нужно, например, иметь один сервер, обслуживающий видео, две записи в блогах, а остальные - все остальное.

Ваш внешний сервер будет очень легким: работает Apache и еще немного. Вы также можете кэшировать свой статический контент на этом переднем сервере, используя Squid или Apache mod_cache, чтобы запросы на изображения, js, css и другой статический контент никогда не попадали на ваш сервер задней части 7 после его кэширования.

EDIT: Я только что прочитал комментарий Паскаля, и он предлагает то же самое. Я буду модератором +1

 Смежные вопросы

  • Нет связанных вопросов^_^