Memcached je bezplatné a open source vysoce výkonné úložiště dat klíč–hodnota v paměti. Používá se hlavně jako systém ukládání do mezipaměti pro urychlení aplikací ukládáním různých objektů do mezipaměti z výsledků databázových volání.
V tomto tutoriálu vysvětlíme, jak nainstalovat a nakonfigurovat Memcached na CentOS 7.
Předpoklady #
Než budete pokračovat v tomto tutoriálu, ujistěte se, že jste přihlášeni jako uživatel s právy sudo.
Instalace Memcached #
Balíčky Memcached jsou součástí výchozích úložišť CentOS 7. Instalace je velmi snadná, stačí zadat následující příkaz:
sudo yum install memcached libmemcached
Soubor libmemcached
balíček poskytuje několik nástrojů příkazového řádku pro správu serveru Memcached.
Po dokončení instalace spusťte a povolte službu Memcached:
sudo systemctl start memcached
sudo systemctl enable memcached
To je vše, v tuto chvíli máte na svém serveru CentOS 7 nainstalovaný a spuštěný Memcached.
Konfigurace Memcached #
Memcached lze konfigurovat úpravou /etc/sysconfig/memcached
soubor. Ve výchozím nastavení je Memcached nastaven tak, aby naslouchal na všech rozhraních. V následujících částech vám ukážeme, jak nakonfigurovat službu pro místní a vzdálený přístup.
Při nesprávné konfiguraci lze Memcached použít k provedení distribuovaného útoku typu denial-of-service (DDoS).
Pouze místní přístup #
Pokud klient připojující se k serveru také běží na stejném hostiteli, je doporučeno nastavit službu Memcached tak, aby naslouchala pouze localhost.
Chcete-li tak učinit, otevřete memcached
konfigurační soubor pomocí textového editoru:
sudo nano /etc/sysconfig/memcached
V OPTIONS
parametr add -l 127.0.0.1
. To dává Memcached pokyn, aby se svázal pouze se zadaným rozhraním.
OPTIONS="-l 127.0.0.1"
Restartujte službu Memcached, aby se změny projevily:
sudo systemctl restart memcached
Vzdálený přístup #
Pokud je aplikace, která se připojí k Memcached, hostována na vzdáleném serveru, musíte nakonfigurovat bránu firewall a povolit přístup k portu Memcached 11211 pouze z adresy IP klienta.
Následující příklad předpokládá, že se chcete připojit k serveru Memcached přes privátní síť. IP serveru Memcached je 192.168.100.20
a IP adresa klienta je 192.168.100.30
.
CentOS je dodáván s konfiguračním nástrojem brány firewall FirewallD
. Níže uvedené příkazy vytvoří novou zónu s názvem memcached
, otevřete port 11211
a povolit přístup pouze z klientské IP adresy.
sudo firewall-cmd --new-zone=memcached --permanent
sudo firewall-cmd --zone=memcached --add-port=11211/udp --permanent
sudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanent
sudo firewall-cmd --zone=memcached --add-source=192.168.100.30/32 --permanent
sudo firewall-cmd --reload
Jakmile je váš firewall nakonfigurován, dalším krokem je upravit konfiguraci Memcached a nastavit službu tak, aby naslouchala na privátním síťovém rozhraní serveru:
Otevřete memcached
konfigurační soubor:
sudo nano /etc/sysconfig/memcached
V OPTIONS
parametr přidat IP adresu serveru -l 192.168.100.20
:
OPTIONS="-l 192.168.100.20"
Uložte soubor a restartujte službu Memcached:
sudo systemctl restart memcached
Připojování k Memcached #
Chcete-li se připojit k serveru Memcached, musíte použít klienta specifického pro daný jazyk.
PHP #
Chcete-li použít Memcached jako cachovací databázi pro vaši PHP aplikaci, jako je WordPress, Drupalor Magento, musíte nainstalovat php-pecl-memcached
rozšíření:
sudo yum install php-pecl-memcache
Python #
Existuje několik knihoven Python pro interakci s memcache. Svoji preferovanou knihovnu můžete nainstalovat pomocí pip:
pip install pymemcache
pip install python-memcached