-1

Около 6 месяцев назад я запустил сайт, который конвертирует видео в различные форматы.

За последние несколько недель трафик сайта вырос более чем на 300%, и теперь мне нужно, так сказать, сбалансировать нагрузку.

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

Мне интересно, есть ли способ настроить домен для динамического выбора из IP-адресов серверов. Таким образом, я мог установить точно такую же конфигурацию, как у меня, на своем главном сервере на всех последующих серверах и просто оставить скрипт как есть.

Любые отзывы или предложения будут с благодарностью.

ОБНОВИТЬ

Вот обратный прокси, который я настроил. На других серверах я установил виртуальный хост с тем же именем «main.website.com», но по какой-то причине, когда страницы загружаются, нет CSS. Просматривая журналы сервера, кажется, что сервер, на который я проксирую, не использует правильный виртуальный хост и использует сервер по умолчанию.

<VirtualHost *:80>
ProxyRequests off
ServerName main.website.com
ServerAlias www.main.website.com
ServerAdmin webmaster@webmaster.com

<Proxy balancer://mycluster>
            # Server ip 1
            BalancerMember http://0.0.0.0:80
            # Server ip2
            BalancerMember http://0.0.0.0:80

            ProxySet lbmethod=byrequests
</Proxy>
ProxyPass /balancer-manager !
ProxyPass / balancer://mycluster/
</VirtualHost>

1 ответ1

0

Если я понимаю ваши вопросы, есть несколько способов сделать это -

  1. Использовать DNS - несколько записей ресурсов для домена, каждая из которых указывает на отдельный IP-адрес - возможно иметь несколько записей A, и серверы будут выдавать их в произвольном порядке, что может обеспечить грубую балансировку нагрузки. Вы, вероятно, захотите использовать низкие TTL для этого, и это не будет работать хорошо, если есть несколько систем, пытающихся загрузить. Это не требует ничего особенного, хотя.

  2. Более сложный вариант, описанный выше, состоит в том, чтобы ваши серверы имен использовали Split DNS для предоставления разных ответов на разные запросы - обычно на основе исходного IP-адреса. Вам нужны DNS-сервер (ы), которые поддерживают несколько представлений для этого - BIND обычно приходит на ум. (Дело в том, что это не может быть жизнеспособным, если вы используете чьи-то еще серверы имен)

  3. Забудьте об этом в DNS - организуйте свою систему в кластер и используйте балансировщик нагрузки перед ним. Это обеспечит устойчивость в случае отказа систем, а также улучшит контроль зерна. Это может сделать любое количество систем - Squid, Apache, IPVadm (другой подход, работает на более низком уровне). Я не смотрел на это, но в качестве альтернативы вы могли бы использовать что-то вроде Amazons Cloudfront.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .