Optimizirajte delovanje baze podatkov z uporabo strežnika Memcached z vašimi aplikacijami PHP in Python
Če ste kdaj občutili bolečino zaradi visoke obremenitve baze podatkov, ki povzroča upočasnitev vaših spletnih aplikacij, in se spraševali »Ali obstaja način za zmanjšanje zakasnitve, ki jo povzročajo poizvedbe DB?«, potem je odgovor na to vprašanje velik pritrdilen. Memcached, prijazen demon predpomnilnika v soseski, je tukaj, da reši vse vaše težave! Predpomnjenje DB je ena najpreprostejših metod za lajšanje obremenitve DB in pospešitev dinamičnih spletnih aplikacij.
Memcached se opredeljuje kot visoko zmogljiv, porazdeljen sistem predpomnilnika pomnilniških objektov, generičen po naravi, vendar je bil prvotno namenjen uporabi pri pospeševanju dinamičnih spletnih aplikacij z lajšanjem obremenitve baze podatkov. Razvil ga je Brad Fitzpatrick za svojo spletno stran LiveJournal leta 2003.
V tem članku si bomo ogledali, kako namestiti in konfigurirati Memcached v Ubuntu 20.04 in si ogledali njegove odjemalce, specifične za jezik.
Predpogoji
Sistem, nameščen z Ubuntu 20.04 z uporabnikom s skrbniškimi pravicami, to je a sudo
uporabnik.
Namestitev
Memcached je na voljo v uradnem skladišču Ubuntu 20.04, poleg Memcacheda bomo namestili tudi orodje CLI, znano kot libmemcached-tools
za upravljanje Memcached. Samo zaženite naslednji ukaz, da namestite oba
sudo apt install memcached libmemcached-tools
Preverite namestitev
Po končani namestitvi se demon Memcached sam zažene v ozadju. Za preverjanje namestitve lahko uporabimo ukaz from libmemcached-tools
paket za pridobitev statistike strežnika Memcached. Ali teči
memcstat --strežniki lokalni gostitelj
oz
memcstat --strežniki 127.0.0.1
The memcstat
ukaz prikazuje statistiko delujočega strežnika. Zgornji ukaz bo povzročil izhod, prikazan spodaj.
Različne statistike kot npr čas delovanja
v sekundah, različica
in pid
bo prikazano kot izhod. Če pa ni prikazan noben izhod, je možno, da Memcached ne deluje. Zato morate za zagon strežnika Memcached zagnati naslednji ukaz.
sudo systemctl zaženi memcached
Za zagon strežnika Memcached ob zagonu sistema uporabite naslednji ukaz.
sudo systemctl omogoči memcached
Konfiguriranje Memcached
Če imate vaš memcached nameščen na samem strežniku spletnega mesta, vam ni treba spreminjati konfiguracijske datoteke, saj je memcached vnaprej konfiguriran za delo z localhost.
Po drugi strani, če ste namestili Memcached v ločen sistem, boste morali spremeniti konfiguracijo, da omogočite dostop oddaljenega strežnika do strežnika Memcached.
Nastavitev oddaljenega dostopa za strežnik Memcached
Memcached je ranljiv za napade DDoS (Distributed Denial of Service). Nepravilno pravilo požarnega zidu in odprta vrata UDP bodo pustili vaš strežnik odprt in ranljiv za napade DDoS.
Za zmanjšanje tveganja lahko onemogočimo protokol UDP za Memcached v konfiguraciji ali pa nastavimo požarni zid samo tako, da dovolimo zaupanja vredne strežnike.
Iz škatle se Ubuntu pošilja brez odprtih vrat TCP ali UDP. Poleg tega demon požarnega zidu ufw
(nezapleteni požarni zid) privzeto ni omogočen.
Omogočili bomo požarni zid in nastavili konfiguracijo Memcached, da bomo lahko ublažili ranljivost DDoS.
Najprej omogočite ufw
z zagonom naslednjega ukaza:
sudo systemctl omogoči ufw
Nato začnite z ufw
storitev tako, da zaženete spodnji ukaz:
sudo systemctl start ufw
Ko požarni zid deluje, lahko končno nastavimo pravila požarnega zidu. Najprej omogočite vrata 22, da omogočite povezave SSH. SSH je potreben za oddaljen dostop do želenega strežnika.
sudo ufw dovoli 22
Drugič, poznati morate naslov IP odjemalca, to je gostitelj spletne aplikacije, in naslov IP strežnika, to je strežnik Memcached.
V tem primeru predpostavimo, da je IP odjemalca 192.168.0.4
in IP strežnika Memcached 192.168.0.5
v lokalnem omrežju.
Če želite omogočiti oddaljeni dostop strežnika memcached do strežnika odjemalca, zaženite:
sudo ufw dovoli iz 192.168.0.4 na katera koli vrata 11211
Zamenjajte 192.168.0.4
z želenim naslovom IP odjemalca.
Nato uredite konfiguracijsko datoteko Memcached, ki se nahaja na /etc/memcached.conf
s tekom nano
ukaz.
sudo nano /etc/memcached.conf
The memcached.conf
konfiguracijska datoteka se bo odprla z urejevalnikom nano, poiščite -l 127.0.0.1
vrstico v konfiguraciji in jo zamenjajte 127.0.0.1
z naslovom vašega strežnika Memcached ali v tem primeru 192.168.0.5
.
Po zamenjavi stiskalnice ctrl+o
za pisanje v konfiguracijsko datoteko in pritisnite enter, pritisnite ctrl+x
za izhod iz nano.
Znova zaženite strežnik Memcached in ufw
požarni zid tako, da zaženete spodnji ukaz.
sudo systemctl znova zaženi memcached ufw
Zdaj smo končali z namestitvijo in konfiguracijo strežnika Memcached na Ubuntu 20.04.
Povezava s strežnikom Memcached
Za uporabo strežnika Memcached boste morali namestiti odjemalca, ki je specifičen za jezik. Na srečo ima Memcached podporo za številne priljubljene jezike.
Torej, poglejmo, kako namestiti php
in python
odjemalec za Memcached.
PHP je najbolj priljubljen skriptni jezik na strani strežnika, Memcached pa večinoma uporabljajo spletni razvijalci za izboljšanje delovanja strežnika spletnih aplikacij, ki jih poganja PHP.
Če želite namestiti podporo za memcached v php, teči:
sudo apt namestite php-memcached
Python ima tudi več knjižnic, ki lahko delujejo in sodelujejo s strežnikom Memcached, kot je npr pymemcached
oz python-memcached
.
Memcached za python lahko namestite tako, da zaženete naslednje ukaze pip:
pip namestite pymemcache
pip install python-memcached
Za zaključek smo si ogledali namestitev, konfiguracijo in nekaj jezikovno specifičnih odjemalcev Memcached v Ubuntu 20.04.
Če želite izvedeti bolj podrobno in napredno uporabo Memcacheda, si oglejte Memcached Wiki.