Bevezetés a haproxy és a terheléselosztás elvek
HAProxy (High Availability Proxy) - a népszerű proxy szerver Linux, Solaris és FreeBSD Terheléselosztási TCP / HTTP nyílt forráskódú. Fő feladata - kiszolgáló környezet, a termelékenység növelése elosztja a terhelést több szerver között (web, alkalmazás, adatbázis). Ezek olyan jól ismert projektek, mint a GitHub, imgur, Instagram és a Twitter.
terminológia HAProxy
Van néhány alapvető feltételeket, amelyek egyértelműen meg kell érteni a vita a terheléselosztás és proxy szervereket. De mielőtt elkezdi megérteni az új feltételeket, hogy beszélni, mi az ACL, backend és frontend.
Hozzáférés-vezérlési lista (ACL)
Amikor beszélünk a megoszlása a terhelés, az ACL ellenőrzésére használt készlet kiosztási szabályok és elindítani bizonyos intézkedéseket (például a szerver kiválasztása, vagy blokkoló hálózat kérésre), attól függően, hogy az alkalmazandó szabályok.
Az ACL lehetővé rugalmasan kezelni a forgalom átirányítása ez számos tényezőtől függően, amelyek között a minta megfelelő vagy korlátozza a kapcsolatok számát a backend et al.
A részletesebb leírást a használata ACL, olvassa el a telepítési utasításokat HAProxy.
Van egy sor backend szerver fogadására továbbított felhasználói kéréseket. Ezek szakaszban meghatározott backend konfigurációs. Általában, a háttér határozza meg a következő paramétereket:
- kiegyenlítő algoritmus
- szerverek és a beállított kikötők
Backend tartalmazhat egy vagy több szerver. Más szóval, a további szervereket, akkor növeli a lehető legnagyobb terhelést, eloszlatva minden szerver. Ahogy így növeli hibatűrésre ha az egyik szerver visszautasította.
Itt egy példa, ahol két backend, web-backend és blog-backend kérelmek feldolgozásának? érkező 80-as porton:
A vonal mérleg roundrobin jelzi kiegyensúlyozó algoritmus, amelynek leírása az alábbi részben a terhelés eloszlását algoritmusok.
Mode http azt jelzi, hogy fogja használni a proxy 7 réteg, amelyet szintén ismertetnek a terhelés elosztása típusok.
Paraméter ellenőrzés azt jelenti, hogy ezek a szerverek ellenőrizni kell használhatósági.
Frontend meghatározza, hogyan kérelmeket kell irányítani a háttérben. Ezek szakaszában meghatározott frontend HAProxy beállításokat. Ezek meghatározása az alábbi összetevőkből áll:
Kezelőfelületek megadhat eltérő beállításokat a különböző hálózati forgalmat, amely megbeszéljük később.
teherelosztás típusok
Tehát kitalálta az alapfogalmak, menjünk tovább, hogy milyen típusú a terhelés kiegyenlítésére.
terhelés nélkül
A legegyszerűbb webes alkalmazás nélkül terheléselosztás általában a következő:

Megoszlása a terhelési szint 4
Bemutatunk egy egyszerű diagram egy példát alkalmazásának a kiegyensúlyozó réteg 4:

A felhasználó hozzáfér a kiegyensúlyozó, amely továbbítja a kérést egy csoportja web-backend backend szervereken. A megfelelő háttér szerver válaszol a felhasználó. Ideális esetben minden szerver kell kiadnia azonos tartalmú, vagy a felhasználó váratlan eredményeket kaphat. Általában az összes szerver kell csatlakoztatni ugyanabban az adatbázisban.
Terhelés elosztás szintjén 7
Ezután, egy összetett folyamat - a terhelés kiegyensúlyozó réteg 7 (alkalmazási réteg). Egy ilyen eljárás lehetővé teszi, hogy ellenőrizzék a forgalmat a tartalma alapján kérelmet. Tehát képes végrehajtani több webes alkalmazás ugyanazon a tartomány és a port.
Bemutatunk egy egyszerű diagram egy példát alkalmazásának a kiegyensúlyozó réteg 7:

Ebben az esetben, ha a felhasználó kéri, hogy yourdomain.com/blog. ez lesz irányítva a backend, felelős a blog, azaz, hogy futtató kiszolgálók a blog alkalmazás. Minden más kéréseket a web-backend, amely már használ egy teljesen más alkalmazás. Ebben a példában egyaránt egy backend adatbázis szerver.
Frontend beállítási példa általában így néz ki:
Ez a beállítás határozza meg a frontend nevű http. amely felelős az összes bejövő forgalom 80 port.
use_backend blog-backend ha url_blog átirányítja forgalom sootetstvii ACL szabályokat.
default_backend web-backend jelzi, hogy a forgalom átirányításra kerül a web-kezelőt.
terhelés kiegyenlítő algoritmusok
terheléselosztó algoritmus kiválasztásáért felelős a szerver feldolgozza a felhasználó kérésére. HAProxy kínál nekünk több algoritmusok. Amellett, hogy az algoritmus, akkor adja meg a súlyát minden szerver, amely szerint ő lesz választják gyakrabban vagy ritkábban.
Úgy véljük, csak a leggyakrabban használt algoritmusok, bár HAProxy kínál nekik sokkal több. A beállítási utasítások HAProxy akkor nézd meg őket részletesebben.
Itt van az alapvető algoritmusok:
Az algoritmus által használt alapértelmezett. Sorol fel, egy-egy szerveren.
Kiválasztja a szerver a legkisebb számú hatóanyagok. Ez ajánlott a hosszú ülés. Szerverek egy backend változhat ciklikusan.
Kiválasztja a szerveren alapuló hash, amely alapján épült a felhasználó IP. Így a felhasználók bármikor hozzáférhetnek az ugyanazon a szerveren.
a munkamenet idejére
Néha egy alkalmazás megköveteli, hogy a felhasználó csatlakozik ugyanazon a szerveren. Ez úgy érhető el alkalmazásával paraméter a szükséges appsession háttérben.
működőképesség vizsgálat
HAProxy használ szervert állapotfelmérés, annak megállapítására, hogy képes feldolgozni a kérelmet. Tehát nem kell kézzel zárja a szerver a backend konfigurációs. Alapértelmezett HAProxy megpróbálja létrehozni a TCP kapcsolat a szerver és ellenőrzi, hogy az adatok feldolgozása kapott 80-as porton.
Ha a szerver nem a teszt, akkor automatikusan kizárják a backend és a forgalom, hogy nem irányítva, amíg a szerver újra elérhetővé válik. Ha esik az összes szerver, az alkalmazás elérhetetlenné válik, amíg vissza nem áll a munka legalább egy szerver.
Néhány, az azonos típusú szerverek, mint például az adatbázis-kiszolgálók, ez a vizsgálat nem elég.
más megoldások
Ha HAProxy tűnt túl nehéz megoldani a problémát, próbálja a következő lehetőségeket:
- Linux Virtual Servers (LVS) - a kiegyensúlyozó 4 szint a legtöbb Linux disztribúció.
- Nginx - gyors és biztonságos web szerver, ami szintén használható kiegyensúlyozó. Ő nagyon gyakran együtt használják HAProxy köszönhetően, hogy képes-gyorsítótár és az archiválást.
következtetés
Tehát megvan, hogy tudja az alapokat terheléselosztás és van egy ötletem, hogyan HAProxy tud segíteni. Most már nyugodtan elkezd improvizálni annak érdekében, hogy a legjobb eredményeket a szerver.