Kaip sukonfigūruoti HAProxy kaip atvirkštinį tarpinį serverį

Kaip Sukonfiguruoti Haproxy Kaip Atvirkstini Tarpini Serveri



Kai turite žiniatinklio serverį, galimybė persiųsti kliento užklausas ir serverio atsakymą padeda paskirstyti srautą ir padidina saugumą. Atvirkštinis tarpinis serveris, pvz., HAProxy, veikia kaip tarpininkas tarp jūsų žiniatinklio programos ir kliento įrenginių, kai sukonfigūruotas. Tokiu būdu jis gauna klientų užklausas ir persiunčia jas į atitinkamą žiniatinklio serverį, tuo pačiu gaudamas serverio atsakymą ir perduodamas juos klientams. HAProxy konfigūravimas serverio pusėje, kad jis veiktų kaip atvirkštinis tarpinis serveris, yra nesudėtingas procesas. Šiame įraše išsamiai aprašyti veiksmai, kurių turėtumėte imtis.

Kodėl verta naudoti atvirkštinį tarpinį serverį?

Prieš aptardami veiksmus, kaip konfigūruoti HAProxy kaip atvirkštinį tarpinį serverį, greitai pabrėžkime, kodėl atvirkštinis tarpinis serveris yra naudingas jums. Toliau pateikiami pranašumai, kuriuos gaunate naudodami HAProxy kaip atvirkštinį tarpinį serverį:

  1. Apkrovos balansavimas - Vienu metu jūsų žiniatinklio serveris gali turėti daug klientų užklausų, kurios, netinkamai tvarkomos, gali jį perkrauti, o tai gali sukelti netikėtą prastovą. Tačiau sukonfigūravus atvirkštinį tarpinį serverį užtikrinama, kad srautas bus paskirstytas tarp galinių serverių, kad nė vienas serveris nebūtų perkrautas užklausomis.
  2. Ugniasienė ir saugumas – Atvirkštinis tarpinis serveris sujungia kliento įrenginius su žiniatinklio serveriu. Tai sumažina riziką, kad mūsų užpakaliniai serveriai bus tiesiogiai veikiami internetu. Tokiu būdu kenkėjiškas srautas gali būti lengvai filtruojamas ir užblokuotas, kol jis nepažeidžia serverių.
  3. Geresnis talpyklos saugojimas – Naudodami atvirkštinį tarpinį serverį pastebėsite bendrą našumo pagerėjimą, nes įkelties laikas sutrumpės dėl statinio turinio talpyklos. Be to, pasieksite geresnę vartotojo patirtį.
  4. SSL/TLS nutraukimas – Naudojant atvirkštinį tarpinį serverį, SSL/TLS ryšių šifravimas ir iššifravimas tampa sklandus, o jūsų užpakaliniams serveriams nereikės prisiimti šios užduoties, nes sumažėja jų apkrova.

Kaip sukonfigūruoti HAProxy kaip atvirkštinį tarpinį serverį

Paaiškinę, kodėl atvirkštinis tarpinis serveris, pvz., HAProxy, yra būtinas, pateiksime konfigūracijos veiksmus, kuriuos reikia atlikti.







1 veiksmas: įdiekite HAProxy



Tikriausiai jūsų sistemoje jau įdiegta HAProxy. Jei taip, praleiskite šį veiksmą. Tačiau jei kas nors tai nepažįsta, paleiskite šią komandą, kad įdiegtumėte HAProxy:



$ sudo apt įdiegti haproxy

Mes jį jau įdiegėme mūsų atveju.





2 veiksmas: redaguokite HAProxy konfigūracijos failą



HAProxy turi konfigūracijos failą, kurį turite pasiekti ir redaguoti, kad sukonfigūruotumėte kaip atvirkštinį tarpinį serverį. Pradėkite atidarydami konfigūracijos failą naudodami teksto rengyklę.

$ sudo nano /etc/haproxy/haproxy.cfg

Kai jis atsidarys, atkreipkite dėmesį, kad jame yra pagrindinės numatytosios ir visuotinės skilčių konfigūracijos. Tada turime sukurti dar dvi dalis: frontend ir backend. Frontend apibrėžia sąsajas, kurios turėtų gauti kliento užklausas, o backend nurodo serverius, kurie tvarkys srautą.

Šiame pavyzdyje sukonfigūruojame sąsają, kad priimtų kliento užklausas iš 80 ir 81 prievadų. Tada sukuriame taisyklę, skirtą srautui paskirstyti taip, kad ryšiai iš 80 prievado būtų nukreipiami į konkretų serverį, o jungtys iš 81 prievado – į kitą. serveris. Mūsų priekinės dalies skyrius yra toks, kaip parodyta taip:

Kadangi sukūrėme du pagrindinius serverius, backend2 ir linux_backend, turime sukurti abiejų serverių backend skyrius. Nurodome, koks IP srautas paskirstomas į mūsų „server1“ ir „server2“ kiekvienam.

Kai konfigūracijos failas bus redaguotas, išsaugokite jį ir išeikite iš failo. Atminkite, kad yra daug būdų, kaip konfigūruoti HAProxy, atsižvelgiant į jūsų poreikius. Mūsų atveju mes sukuriame žiniatinklio serverius naudodami nurodytą IP adresą, kad nukreiptume srautą. Pakeiskite IP adresus, kad jie atitiktų jūsų žiniatinklio serverių IP adresus ir per kurį prievadą norite klausytis.

3 veiksmas: patikrinkite galiojimą

Naudojant HAProxy, yra komanda, leidžianti patikrinti, ar jūsų konfigūracijos failas yra tinkamas. Vykdykite šią komandą ir pažiūrėkite, kokią išvestį gaunate:

$ sudo haproxy -c -f /etc/haproxy/haproxy.cfg

Jei gaunate panašią išvestį, tai patvirtina, kad jūsų konfigūracijos failas yra tinkamas. Priešingu atveju tai padidins klaidų skaičių.

4 veiksmas: patikrinkite atvirkštinį tarpinį serverį

Naudodami tokią komandą kaip „curl“, galite siųsti srautą į savo žiniatinklio serverį ir pamatyti, kaip jis reaguoja. Mūsų atveju žiniatinklio serveriams kurti naudojame Python3.

Vykdant komandą „curl“ patvirtinama, kad mūsų žiniatinklio serveris klauso nurodyto prievado ir kad HAProxy paskirstė srautą nurodytam serveriui pagal mūsų konfigūracijos failą.

Taip pat galite pasiekti savo žiniatinklio serverį naudodami naršyklę ir patvirtinti, kad veikia atvirkštinis tarpinis serveris.

Kadangi turime du žiniatinklio serverius, kuriuos galima naudoti priklausomai nuo prievado, kurį naudoja kliento įrenginiai, susiekime kitą žiniatinklio serverį su kitu prievadu ir pažiūrėkime, kas atsitiks.

Ši išvestis rodo, kad HAProxy nusiuntė mūsų srautą į antrąjį pagrindinį serverį po to, kai aptiko, kad kliento užklausa buvo išsiųsta per 81 prievadą, patvirtindama, kad srauto paskirstymas veikia taip, kaip tikėtasi.

Štai kaip sukonfigūruoti HAProxy kaip atvirkštinį tarpinį serverį.

Išvada

HAProxy yra puikus pasirinkimas atvirkštiniam tarpiniam serveriui jūsų žiniatinklio serveriui. Jį sukonfigūruoti paprasta. Nurodykite tik kokį prievadą klausytis klientų užklausų ir kokias taisykles naudoti apkrovos balansavimui. Tada pridėkite naudojamus užpakalinius serverius ir jūsų atvirkštinis tarpinis serveris bus sukurtas ir paleistas. Šiame įraše buvo bendrinami veiksmai, kuriuos reikia atlikti, ir parodytas pavyzdys, kaip užtikrinti, kad jums patogu naudotis HAProxy.