ХАПроки водич за почетнике

Haproki Vodic Za Pocetnike



Како се ваша апликација повећава, јавља се потреба за додавањем више сервера како би се управљало више саобраћаја. Што више саобраћаја ваша апликација прима, веће су шансе да се суочите са застојем када се сервер преоптерети. Међутим, постоје алати као што је ХАПроки који вам омогућавају да дефинишете како се управља саобраћајем да бисте уравнотежили оптерећење на вашем серверу. Идеја је да се осигура да ниједан сервер не буде преоптерећен. Хигх Аваилабилити Проки је софтвер отвореног кода који је дизајниран да понуди поуздано балансирање оптерећења док делује као обрнути прокси за ТЦП/ХТТП апликације.

ХАПроки ради на смањењу преоптерећења било ког сервера, а то постиже дистрибуцијом саобраћаја како би се осигурало да нема преоптерећења сервера, а да су други сервери доступни. Платформа као што је Инстаграм има огроман саобраћај због захтева који се шаљу у секунди, па стога постоји потреба да се користи ХАПроки за дефинисање фронтенда, позадине и слушалаца за сервере како би се избегло преоптерећење.

Зашто користити ХАПроки

Пре него што научите о инсталацији и конфигурацији ХАПроки-а, требало би да разумете зашто нам је потребан, захваљујући функцијама које нуди. Следеће су примарне карактеристике ХАПроки-а:







  1. Балансирање оптерећења – Уз ХАПроки, можете удобно да дистрибуирате саобраћај на различите сервере како бисте избегли преоптерећење једног сервера. На тај начин, ваша апликација се неће суочити са проблемима застоја, а ви ћете постићи бржи одзив, поузданост и доступност.
  2. Евидентирање и праћење – Добићете детаљне евиденције надгледања за своје сервере како бисте помогли у решавању проблема. Осим тога, ХАПроки има страницу са статистиком на којој можете добити аналитику учинка у реалном времену за ваш балансатор оптерећења.
  3. Здравствени прегледи – Чак је и вашим серверима потребна провера здравља да би се утврдио њихов статус. ХАПроки често покреће провере здравља како би сазнао статус вашег сервера како би побољшао његову поузданост. Ако се открије неисправан сервер, он преусмерава саобраћај на други сервер.
  4. Обрнути прокси – Један од начина да се повећа безбедност је сакривање унутрашње структуре. Срећом, ХАПроки вам омогућава да примате саобраћај од клијената и усмеравате га на одговарајуће сервере. На тај начин, ваша унутрашња структура је скривена од хакерског ока.
  5. АЦЛ-ови (Листе контроле приступа) – Са ХАПроки, можете дефинисати како треба да се одвија рутирање саобраћаја користећи различите критеријуме као што су путање, заглавља и ИП адресе. Стога, дефинисање прилагођене логике рутирања за ваш саобраћај постаје лакше.
  6. ССЛ прекид – Подразумевано, ССЛ/ТЛС се ослобађају од позадинских сервера што доводи до смањених перформанси. Међутим, са ХАПроки, ССЛ/ТЛС завршетак се дешава у балансатору оптерећења, чиме се задатак растерећује на позадинским серверима.

Инсталирање ХАПроки-а

До сада смо дефинисали шта је ХАПроки и разговарали о функцијама које нуди да бисмо вам помогли да разумете зашто вам је потребан за вашу апликацију. Следећи корак је да разумете како да почнете тако што ћете га инсталирати на свој систем.



Ако користите Убунту или Дебиан системе, ХАПроки се може инсталирати из АПТ менаџера пакета. Покрените следећу команду:



$ судо апт ажурирање
$ судо апт инсталл хапроки

Слично томе, ако користите системе засноване на РХЕЛ-у или ЦентОС, ХАПроки је доступан у „иум“ менаџеру пакета. Покрените следеће команде:





$ судо иум ажурирање
$ судо иум инсталл хапроки

У нашем случају користимо Убунту. Дакле, нашу команду имамо на следећи начин:



Затим можемо да проверимо његову верзију да бисмо се уверили да смо успели да успешно инсталирамо ХАПроки.

$ хапроки --версион

Како да конфигуришете ХАПроки

Са инсталираним ХАПроки, сада можете отворити његову конфигурациону датотеку ( / етц/хапроки/хапроки.цфг) и дефинишите подешавања која желите да користите за балансирање оптерећења.

Отворите конфигурациону датотеку помоћу уређивача као што је нано или вим.

$ судо нано /етц/хапроки/хапроки.цфг

Добијате конфигурациону датотеку попут ове у наставку:

Из конфигурационе датотеке, приметићете да долази са два главна одељка:

  1. глобално – То је први одељак у датотеци и његове вредности не би требало мењати. Садржи подешавања процеса која дефинишу како ХАПроки функционише. На пример, дефинише детаље евидентирања и групе или кориснике који могу да извршавају ХАПроки функције. Имајте на уму да у овој конфигурационој датотеци можете имати само један глобални одељак и његове вредности треба да остану непромењене.
  1. подразумеване вредности – Овај одељак садржи подразумеване вредности за чворове. На пример, у овом одељку можете додати временска ограничења или оперативни режим за ваш ХАПроки. Осим тога, могуће је имати бројне подразумеване секције у вашој ХАПроки конфигурационој датотеци.

Ево примера одељка „Подразумеване вредности“:

На датој слици, режим дефинише како ће ваш ХАПроки обрађивати долазне захтеве. Можете да подесите режим на ХТТП или ТЦП. Што се тиче временског ограничења, оно одређује колико дуго ХАПроки треба да чека. На пример, временско ограничење везе је време за чекање пре него што се успостави позадинска веза. Клијент тимеоут је колико дуго ХАПроки треба да чека да клијент пошаље податке. Сервер времена чекања је време чекања да одговарајући сервер пошаље податке који ће бити прослеђени клијенту. Начин на који дефинишете подразумеване вредности је веома важан за повећање времена одговора ваше апликације.

Постоје још три одељка које треба да дефинишете да би балансатор оптерећења радио како се очекује.

  1. предњи крај - Овај одељак садржи ИП адресе које желите да ваши клијенти користе за успостављање везе.
  2. бацкенд - Приказује скупове сервера који обрађују захтеве као што је дефинисано у фронтенд одељку.
  3. слушај - Користи се сукцесивно када желите да усмерите одређену групу сервера. Овај одељак комбинује задатке фронтенда и бацкенд-а.

Хајде да имамо пример

За овај пример, дефинишемо фронтенд да користи лоцалхост са одређеним портом. Затим га повезујемо са позадином која покреће локални хост, а затим покрећемо Питхон сервер да бисмо тестирали да ли све ради како се очекује за балансирање оптерећења. Пратите дате кораке.

Корак 1: Конфигурисање одељка са подразумеваним подешавањима

У одељку „Подразумеване вредности“ постављамо вредности које ће се делити преко чворова. У нашем случају, поставили смо режим на ХТТП и поставили временско ограничење за клијента и сервера. Можете подесити време према вашим потребама.

Запамтите да се све ове измене налазе у ХАПроки конфигурацији која се налази на „/етц/хапроки/хапроки.цфг“. Када је одељак са подразумеваним подешавањима конфигурисан, хајде да дефинишемо фронтенд.

Корак 2: Конфигурисање фронтенд секције

У одељку фронтенд-а дефинишемо како желимо да клијенти приступају апликацији или веб локацији на мрежи. Дајемо ИП адресе за апликацију. Али у овом случају радимо са локалним домаћином. Стога је наша ИП адреса резервна адреса 127.0.0.1 и желимо да прихватимо везе преко порта 80.

Морате додати кључну реч „бинд” која делује као слушалац за ИП адресу на наведеном порту. ИП адреса и порт које дефинишете су оно што балансатор оптерећења користи за прихватање долазних захтева.

Након што додате претходне редове у вашу конфигурациону датотеку, морамо поново покренути „хапроки.сервице“ са следећом командом:

$ судо системцтл поново покрените хапроки

У овом тренутку можемо покушати да пошаљемо захтеве на нашу веб локацију помоћу команде „цурл“. Покрените команду и додајте циљну ИП адресу.

$ цурл <ИП адреса>

Пошто тек треба да дефинишемо како ће бити позадина нашег ХАПроки-ја, добијамо грешку 503 као што је приказано у наставку. Иако је балансатор оптерећења успео да прими захтеве, ниједан сервер тренутно није доступан да то обради, отуда и грешка.

Корак 3: Конфигурисање позадине

Позадински одељак је место где дефинишемо сервере који ће обрађивати све долазне захтеве. Балансатор оптерећења се позива на овај одељак да би знао како треба да дистрибуира долазне захтеве како би осигурао да ниједан сервер не буде преоптерећен.

Грешка 503 коју смо раније добили је зато што нисмо имали позадину за обраду захтева. Почнимо тако што ћемо дефинисати „дефаулт_бацкенд“ за обраду захтева. Дефинишете га у предњем делу. Назвали смо га „линук_бацкенд“ за овај случај.

Затим креирајте позадински одељак који има исто име као онај који је дефинисан у предњем делу. Затим морате да користите кључну реч „сервер“ праћену именом вашег сервера и његовом ИП адресом. Следећа слика показује да смо дефинисали „линукхинт1“ сервер користећи ИП 127.0.0.1 и порт 8001:

Можете имати скуп позадинских сервера, али ми смо дефинисали само један за овај случај. Уверите се да сте сачували датотеку. Морамо поново покренути ХАПроки услугу.

Да бисмо тестирали креирани ХАПроки балансатор оптерећења, креирамо веб сервер који користи Питхон3 да повеже позадинске портове користећи ИП адресу коју смо навели. Покрећемо наредбу на следећи начин:

$ питхон3 -м хттп.сервер 8001 --бинд 127.0.0.1

Уверите се да сте заменили вредности тако да одговарају вашој ИП адреси и порту који желите да повежете. Обратите пажњу на то како се веб сервер креира и ослушкује све долазне захтеве.

На другом терминалу, употребимо команду „цурл“ да пошаљемо захтев серверу.

$ цурл <ИП адреса>

За разлику од тога како смо раније добили грешку 503 која показује да ниједан сервер није доступан за обраду захтева, овог пута добијамо излаз који потврђује да наш ХАПроки балансатор оптерећења ради.

Ако се вратите на претходни терминал где смо креирали веб сервер, видећете да добијамо успешан излаз 200 који потврђује да је ХАПроки примио захтев и обрадио га тако што га је послао на дефинисан сервер у нашем бацкенд одељку.

Тако можете да подесите једноставан ХАПроки за своју веб локацију или апликацију.

Рад са правилима

Пре него што завршимо са овим ХАПроки водичем за почетнике, хајде да брзо разговарамо о томе како можете да дефинишете правила која ће водити како ће захтеви бити обрађени од стране балансера оптерећења.

Пратећи исте кораке као и раније, оставимо наш подразумевани одељак нетакнутим и дефинишемо различите ИП адресе у предњем делу. Повезујемо исту ИП адресу, али прихватамо везе са различитих портова.

Штавише, имамо наш „дефаулт_бацкенд“ и још један „усе_бацкенд“ који је различит скуп сервера који ћемо користити у зависности од порта одакле долазе захтеви. У следећој конфигурацији, свим захтевима преко порта 81 рукују сервери у „Линук2_бацкенд“. Свим другим захтевима управља „дефаулт_бацкенд“.

Затим креирамо позадинске одељке како је дефинисано у фронтенду. Имајте на уму да за сваки бацкенд имамо другачији сервер који наведемо да користимо за руковање захтевима.

Брзо поново покрените ХАПроки услугу.

Хајде да креирамо веб сервер користећи Питхон3 и повежемо захтеве на порт 8002 који је алтернативни позадински сервер.

Када му шаљемо захтеве, наводимо порт као 81 да би покренуо балансер оптерећења да пошаље захтеве на алтернативни сервер који није подразумевани.

Поново проверавајући наш веб сервер, можемо видети да успева да прими и обради захтеве и даје 200 (успешних) одговора.

Тако можете да дефинишете правила која ће водити како ће ваш балансер оптерећења примати и обрађивати захтеве.

Закључак

ХАПроки је идеално решење за балансирање оптерећења за ТЦП/ХТТП апликације. Једном инсталиран, можете удобно уређивати конфигурациону датотеку да бисте дефинисали подразумеване вредности, фронтенд и бацкенд одељке да бисте водили како ће ваш балансатор оптерећења функционисати. Овај пост је водич за почетнике за ХАПроки. Почело је дефинисањем ХАПроки-а и његових карактеристика. Затим је копао у разумевање како да се конфигурише ХАПроки и закључио дајући пример како се ХАПроки користи као балансатор оптерећења.