Балансиране на натоварването при използване haproxy - vscale общност

Vscale позволява лесно вертикално мащабиране (можете да за по-малко от една минута, за да увеличи значително производителността на вашия сървър), но понякога искате да мащабирате хоризонтално - при обработката на искания / задачи, разпределени в множество сървъри, тя увеличава отказоустойчивост (повреда на един от група от сървъри остават незабелязани потребители, а в случай на вертикално мащаб загуба на услугата могат да бъдат много високи) и дава голяма гъвкавост при настройките и управление. Помислете за пример на специализирани решения за балансиране - HAProxy. HAProxy използван от такива гиганти като Twitter, Instagram, Github, Stackoverflow, Reddit и много други. Програмата може да се инсталира на много и различни системи, ние ще използваме Ubuntu 16.04.

технически изисквания

  • един сървър е под товар стабилизатор
  • 3 сървъра от заявките
  • на всеки от сървърите на потребител с SUDO права

Етап 1. Получаване на Неуспех

Ако мащаб съществуващ проект, е вероятно, че вече имате поне един сървър, който обработва заявките на потребителите, тогава ще трябва да пресъздаде работната му среда (набор от конфигурация и софтуер) за една или повече нови сървъри.
Ние ще създадем 3 нови сървъри ползват vscale ви позволява да направите това с няколко кликвания на мишката. HAProxy пълномощниците потребителски искания като се разпределят между сървърите на някои алгоритъм, така че ние всяка машина трябва уеб сървър. Ето защо, всеки сървър ще актуализира индекса на пакетния мениджър и сложи Nginx:

И промяна на началната страница, за да можете да определите кой от сървърите генерира отговор:

Оставете такова съдържание (поставяне всичко уникален низ в маркера за h1):

В това обучение Неуспех може да се счита пълни, преминете към най-забавната част.

Стъпка 2: Инсталиране на балансьор

Когато изберете сървъра за балансьор трябва да се изхожда от факта, че 1GB оперативна памет е достатъчно, за да обслужва около 20-30 хиляди едновременни сесии, с други думи, толкова дълго, колкото ви услуга не е до размера на Facebook или Twitter, за стабилизатор ще е достатъчно почти всеки сървър.

HAProxy включени в официалния Ubuntu хранилището. Ние актуализира индекса на управление на пакетите и да HAProxy:

Стъпка 4. Създаване на балансьор

Ако не сте донесе полезен навик като резервни конфигурационни файлове, преди да редактирате, трябва да мисля за това като навик ще ви спаси от ситуация, в която критична услуга не стартира поради неправилни редакции конфигурацията, а предишната конфигурация намаление на цените отзоваването не е възможно. Създаване на резервно копие на конфигурационния:

Обърнете внимание, за тези, които не са изправени пред вида на стенограми: съдържание на скоби разказва преводачът на командния ред, че екипът трябва да се разшири, за да напишете "MV /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.backup"

За да започнете да редактирате конфигурационния:

Така че, ние имаме чист лист. Какво ни е нужно? HAProxy има много гъвкава конфигурация и konfirugatsiya може да съдържа голям брой директиви и условия, но ние ще започнем с един прост. конфигурационен файл се състои от няколко секции. Някои секции (на интерфейса, гръб, да слушате) трябва да имат вашето име, някои (например, по подразбиране) - може, но не е необходимо, някои (в световен мащаб) - не трябва.

Добави глобалните настройки:

Тук бяха дадени следните инструкции HAProxy:

  • влезте - да влезете в системата / сътрудничество / дневник запазване на "обекта" local0
  • Chroot - настройки за сигурност, "заключване" HAProxy в указаната
  • статистики гнездо - конфигурация гнездо, в което ще бъдат прехвърлени към Статистика
  • MAXCONN - максимален брой конкурентни съединения в един процес
  • потребител - потребител, от чието име се стартира програмата
  • група - потребителска група, от чието име се стартира програмата
  • демон - тече процес на демон


Expose стойностите по подразбиране:

Секцията по подразбиране описва настройките по подразбиране за всички други раздели, които следват това. Във вашия konfigruratsii файл, той може да бъде няколко секции по подразбиране, в такъв случай, параметрите, описани в този раздел ще бъдат преформулирани по-долу, както и ще се прилагат до секцията, простиращо се отвъд него. В този раздел ще опишем със следните параметри:

  • влезте - показва в каква журналните записи водят (глобални в този случай означава, че използват параметрите, определени в глобалната раздел)
  • режим - създава комуникационен протокол, взима една от стойностите: TCP, HTTP, здраве
  • опитва отново - броят на опитите да се свърже със сървъра в случай на повреда
  • опция httplog - влезте формат, в случая на HAProxy за HTTP-прокси искания, се препоръчва да се даде възможност на тази настройка
  • опция препратена - позволява на програмата да се прекъсне и повторно присвояване на сесия в случай на повреда на сървъра
  • contimeout - максималното време за изчакване на една успешна връзка със сървъра


Сега посочи HAProxy, какво иска той трябва да слуша, това изисква секцията на интерфейса, която в нашия пример, ние ще наричаме "фронт":

Вържи опция със стойност *: 80 казва, че трябва да приеме HAProxy всички заявки към порт 80. параметър Default_backend уточнява кой сървър ще се справят с тези искания. В този случай - backend_servers, така че ние се нарича следващия раздел:

Сега всичко е готово за тестване, обаче, най-вероятно ще искате да следите състоянието на тяхната "ферма" и неговите статистически данни, това ще добави още една точка до конфигурационния файл:

По този начин, в този раздел, ние посочихме HAProxy, той трябва да показва статистиката на страницата "/ haproxy_stats" на порт 10001, ако потребителят въведе име "администратор" и "парола" парола.

Стъпка 3. Тестване

Стъпка 4. Изберете балансиране алгоритъм

HAProxy предлага няколко балансиращи алгоритми, както и в зависимост от вашата задача, можете да изберете най-подходящият:

заключение

Ние прегледахме процеса на организация на балансиране на натоварването с помощта HAProxy, направена инсталацията и първоначално конфигуриране и се запознаха с различни балансиращи алгоритми. С това знание можете да реализирате вашата система скалируемост с ръст натоварване и повишава нейната устойчивост.

tglnkLinux tglnkNgnix tglnkgit