Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 2945|Odgovoriti: 0

Nginx uravnoteženje obremenitve rešuje problem posamezne točke v ozadju SESSION

[Kopiraj povezavo]
Objavljeno na 10. 01. 2023 20:38:39 | | | |
Zahteve: Uporabite Nginx za izdelavo obratnega proxyja, ki je odgovoren za načrtovanje vseh zahtev, zaledje razvija ASP.NET MVC in ga namešča na več različnih strežnikov, kar tvori zaledni grozdInformacije o sejah ni mogoče deliti, zaradi česar nekatere zahteve niso pravilno obdelane。 Pojavile se bodo naslednje težave:





ASP.NET Spletno stran lahko imenujemo takole:

asp.net deljenje sej (prek StateServerja)
https://www.itsvse.com/thread-6613-1-1.html

. Neto distribuirana arhitektura: Deljenje sej na osnovi Redis
https://www.itsvse.com/thread-5189-1-1.html

Najpogosteje uporabljene rešitve so naslednje:

Uporabite bazo podatkov za shranjevanje SESSION

Ker mora vsak strežnik uporabljati isto sejo, lahko sejo shranimo v isto bazo podatkov, vsakič, ko dostopamo, gremo v bazo, da preverimo, ali obstaja ta seja ali ali je seja potekla, nato pa lahko sinhroniziramo sejo več strežnikov;

Zasluga:Uporaba te metode je preprosta, priročna in enostavna za začetek;

Pomanjkljivost:Uporaba baze podatkov za sinhronizacijo sej bo povečala vhodno-izhod baze podatkov in povečala obremenitev baze podatkov. Hkrati mora vsak dostop prestrezati zahteve in poizvedovati v bazi podatkov, kar pomeni dodatno plast dostopa in izgubo časa seje baze podatkov.


Uporabite mehanizem predpomnjenja, kot sta Memcache ali Redis, za shranjevanje SESSION

Uporaba porazdeljenih mehanizmov predpomnjenja, kot sta memcache ali redis, za shranjevanje podatkov sej, je priljubljena rešitev za uravnoteženje obremenitve in sinhrone seje v številnih velikih projektih. Njegovo načelo je, da projekt uporablja memcache ali redis predpomnilnik na istem mestu; ko se uporabnik prijavi, se seja shrani v predpomnilnik, nato pa ne glede na to, kateri strežnik projekta je dostopan, se sejni predpomnilnik pridobi z istega mesta, tako da je sinhronizacija sej enostavna;

Zasluga:Uporaba predpomnilnika za sinhronizacijo sej ne bo povečala bremena za bazo podatkov, prav tako vam ni treba ročno presojati, ali seja obstaja ali poteče, s čimer odpravite nekaj poslovne logike.

Pomanjkljivost:Memcache ali Redis razdeli pomnilnik na številne specifikacije shranjevalnih blokov, obstajajo pa tudi bloki z velikimi velikostmi, kar prav tako določa, da Memcache ali Redis ne moreta v celoti izkoristiti pomnilnika, kar povzroči fragmentacijo pomnilnika, in če so bloki za shranjevanje nezadostni, pride tudi do presežka pomnilnika.

Izkoristite vzorec ip_hash v Nginx

Ta tehnika, znana tudi kot session keeping, je ip_hash tehnologija v nginx, ki vam omogočaZahteve z določenega IP naslova so pritrjene na isti strežnik aplikacij v ozadju, tako da lahko odjemalec in backend pod tem IP-jem vzpostavita stabilno sejo.

(Obstaja pa tudi slabost, če je operaterjevo omrežje bolj nestanovitno in nestabilno,Izhodni IP je dinamičenDa, s to metodo bodo težave. )

Testna metoda je odpiranje dveh lokacij na podlagi dockerja,Ustvariti morate novo index.html datoteko pod imenikoma /data/testsite/a in /data/testsite/b, ukaz je naslednji:

Dostop preko brskalnika, kot je prikazano spodaj:



Če ustvarite nov nginx kontejner na osnovi Dockerja brez uporabe ip_hash tehnologije, se zahteva lahko pošlje na različne strežnike v ozadju, kot je prikazano na spodnji sliki:



Z uporabo ip_hash tehnologije ustvarite novo datoteko /data/testsite/nginx.conf z naslednjo konfiguracijo:

Docker zagonski ukaz je naslednji:




Shranjevanje sej, ki temelji na piškotkih, ki ga je mogoče pregledati v pripetem modulu, je izpuščeno

Konfiguracija Nginx:Prijava do hiperpovezave je vidna.

(Konec)




Prejšnji:【Praktična akcija】Uporabi Docker za gradnjo zasebnega repozitorija Gitlaba
Naslednji:Čiščenje pravil modula za prepis URL-jev v IIS
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com