Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 2945|Odpoveď: 0

Nginx vyvažovanie záťaže rieši problém jedného bodu v backend SESSION

[Kopírovať odkaz]
Zverejnené 10. 1. 2023 20:38:39 | | | |
Požiadavky: Použite Nginx na vytvorenie reverzného proxy, ktorý je zodpovedný za plánovanie všetkých požiadaviek, backend vyvíja ASP.NET MVC a nasadzuje sa na viacerých serveroch, čím vzniká backendový klasterInformácie o relácii nie je možné zdieľať, čo vedie k tomu, že niektoré požiadavky nie sú správne spracované。 Objavia sa nasledujúce problémy:





ASP.NET Webová stránka môže byť označená nasledovne:

asp.net zdieľanie relácií (cez StateServer)
https://www.itsvse.com/thread-6613-1-1.html

. Sieťová distribuovaná architektúra: Zdieľanie relácií založené na Redis
https://www.itsvse.com/thread-5189-1-1.html

Bežne používané riešenia sú nasledovné:

Použite databázu na uloženie SESSION

Keďže každý server musí používať rovnakú reláciu, môžeme reláciu uložiť do tej istej databázy, zakaždým, keď pristupujeme, ideme do databázy, aby sme skontrolovali, či táto relácia existuje, alebo či už vypršala, a potom môžeme synchronizovať reláciu viacerých serverov;

Zásluha:Používanie tejto metódy je jednoduché, pohodlné a ľahko začať;

Nedostatok:Použitie databázy na synchronizáciu relácií zvýši IO databázy a zvýši zaťaženie databázy. Zároveň musí každý prístup zachytávať požiadavky a dotazovať databázu, čo vedie k ďalšej vrstve prístupu a zbytočnému času v databázovej relácii.


Použite mechanizmus cache, ako je Memcache alebo Redis na uloženie SESSION

Použitie distribuovaných cache mechanizmov, ako sú memcache alebo redis na ukladanie dát relácií, je populárnym riešením na vyvažovanie záťaže a synchronné relácie v mnohých veľkých projektoch. Jej princípom je, že projekt používa memcache alebo redis cache na tom istom mieste, keď sa používateľ prihlási, relácia sa uloží do cache a potom bez ohľadu na to, ktorý server projektu je prístupný, cache relácie sa získa z toho istého miesta, takže synchronizácia relácie je ľahko dosiahnuteľná;

Zásluha:Použitie cache na synchronizáciu relácií nezvýši záťaž na databázu, ani nemusíte manuálne posudzovať, či relácia existuje alebo vyprší, čím sa eliminuje časť obchodnej logiky.

Nedostatok:Memcache alebo Redis rozdeľuje pamäť na mnohé špecifikácie úložiskových blokov a existujú bloky s veľkosťou, čo tiež určuje, že memcache alebo redis nemôžu plne využiť pamäť, čo spôsobí fragmentáciu pamäte, a ak sú úložné bloky nedostatočné, dôjde aj k pretečeniu pamäte.

Využite ip_hash vzor v Nginx

Táto technika, známa aj ako session keeping, je ip_hash technológiou v nginx, ktorá vám umožňujePožiadavky z určitej IP adresy sú pripnuté na ten istý backendový aplikačný server, takže klient a backend pod touto IP môžu vytvoriť stabilnú reláciu.

(Ale existuje aj nevýhoda, ak je sieť operátora volatilnejšia a nestabilnejšia,Výstupná IP je dynamickáÁno, s touto metódou budú problémy. )

Testovacia metóda spočíva v otvorení dvoch lokalít na základe dockeru,Musíte vytvoriť nový index.html súbor v adresároch /data/testsite/a a /data/testsite/b, príkaz je nasledovný:

Prístup cez prehliadač, ako je uvedené nižšie:



Ak vytvoríte nový nginx kontajner založený na Dockeri bez použitia ip_hash technológie, požiadavka môže byť odoslaná na rôzne backend servery, ako je znázornené na obrázku nižšie:



Pomocou ip_hash technológie vytvorte nový súbor /data/testsite/nginx.conf s nasledujúcou konfiguráciou:

Docker launch command je nasledovný:




Uchovávanie relácií založené na cookies, ktoré je možné konzultovať v pripnutom module, bolo vynechané

Konfigurácia Nginx:Prihlásenie na hypertextový odkaz je viditeľné.

(Koniec)




Predchádzajúci:【Praktická akcia】Použite Docker na vytvorenie súkromného repozitára v Gitlabe
Budúci:Čistenie pravidiel modulu prepisovania URL v IIS
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com