Come installare Memcached su Debian 12, 11 o 10

Brad Fitzpatrick ha sviluppato Memcached nel 2003 per il sito Web LiveJournal come un potente sistema di caching open source per migliorare le prestazioni delle applicazioni Web dinamiche riducendo il carico del database. Da allora, è diventato vitale per molti siti Web e applicazioni ad alto traffico. Prima di installare Memcached su Debian 12 Bookworm, Debian 11 Bullseye o Debian 10 Buster, esaminiamo di seguito alcuni punti chiave su Memcached.

Caratteristiche e vantaggi principali:

  • Scalabilità: Memcached, che gestisce milioni di operazioni al secondo, è ideale per applicazioni e servizi web su larga scala.
  • Cache distribuita: Con un'architettura di caching distribuita, Memcached consente la scalabilità orizzontale su più server, espandendo la capacità complessiva della cache.
  • Archiviazione in memoria: In quanto archivio chiave-valore in memoria, Memcached garantisce un rapido accesso ai dati memorizzati nella cache, riducendo significativamente la latenza nei sistemi di storage basati su disco.
  • API semplice: Memcached fornisce un'API semplice che supporta vari linguaggi di programmazione, tra cui PHP, Python, Ruby e altri.
  • Scadenza cache: Il sistema consente agli sviluppatori di impostare tempi di scadenza per i dati memorizzati nella cache, facilitando la rimozione automatica dei dati obsoleti o non aggiornati dalla cache.
  • Leggero: Con un sovraccarico minimo di CPU e memoria, Memcached funziona in modo efficiente su varie configurazioni di server senza consumare in modo significativo le risorse di sistema.
  • Tipi di dati flessibili: Memcached accoglie vari tipi di dati, come stringhe, numeri interi e oggetti complessi, rendendolo versatile per diversi casi d'uso.

La seguente guida ti guiderà attraverso il processo di installazione di Memcached su Debian utilizzando due metodi: il repository Debian predefinito per la versione più stabile o scaricando e compilando il file binario più recente per coloro che preferiscono lavorare con la versione più recente.

Metodo 1: installare Memcached tramite il repository APT predefinito

In questa sezione installeremo Memcached sul tuo sistema Debian Linux utilizzando il gestore pacchetti APT. Ciò comporta l'aggiornamento dei pacchetti di sistema e l'installazione di Memcached con alcuni strumenti utili.

Aggiorna il tuo sistema Debian prima dell'installazione di Memcached

Per assicurarti di disporre delle versioni dei pacchetti e degli aggiornamenti di sicurezza più recenti, inizia aggiornando il tuo sistema Debian. Esegui il seguente comando:

sudo apt update && sudo apt upgrade

Questo comando aggiornerà l'elenco dei pacchetti e aggiornerà i pacchetti obsoleti alle versioni più recenti.

Installa gli strumenti Memcached e Libmemcached

Debian include Memcached nei suoi repository predefiniti, semplificando l'installazione. Per installare Memcached, esegui il comando seguente:

sudo apt install memcached libmemcached-tools

Questo comando installa sia Memcached che il file libmemcached-tools pacchetto. IL libmemcached-tools Il pacchetto fornisce utilità da riga di comando aggiuntive che consentono maggiori funzionalità di interazione e gestione con Memcached.

Metodo 2: installa Memcached tramite sorgente

Questa sezione riguarda l'installazione di Memcached sul tuo sistema Debian compilandolo dal codice sorgente. L'installazione dal sorgente può essere utile se desideri utilizzare la versione più recente di Memcached o personalizzare la build per requisiti specifici.

Scarica il sorgente Memcached

Per prima cosa, visita Memcached pagina dell'ultima versione per trovare la versione corrente. Utilizza il seguente wget comando per scaricarlo direttamente:

wget https://memcached.org/latest

Estrai l'archivio sorgente Memcached

Successivamente, estrai il codice sorgente scaricato eseguendo il seguente comando:

tar -xvf latest

Prima di continuare, vai alla directory estratta. Il nome della directory dipende dalla versione scaricata:

cd memcached-{place version number here}

Sostituire {version_number} con il numero di versione effettivo.

Installa i pacchetti iniziali richiesti per compilare Memcached

Prima di compilare Memcached, è necessario installare le dipendenze di compilazione necessarie. Eseguire il comando seguente per installarli:

sudo apt install build-essential libevent-dev gcc make libc6-dev

I pacchetti installati servono ai seguenti scopi:

  • gcc: Un noto compilatore C per i file sorgente Memcached.
  • make: Dirige la compilazione.
  • libc6-dev: Fornisce un riferimento alla libreria GNU C e ai file header.
  • libevent-dev: contiene file di sviluppo per la notifica di eventi asincroni.

Configurare l'installazione

Usa il --prefix= parametro per impostare la directory in cui verranno installati il ​​binario e le librerie Memcached:

./configure --prefix=/usr/local

Compila il codice sorgente Memcached

Compila il codice sorgente Memcached con il file make comando:

make

Prova Memcached confermando la versione corrente:

./memcached --version

Installa Memcached tramite il comando "make install".

Una volta completato il processo di compilazione, installa Memcached eseguendo il seguente comando:

sudo make install

Questo comando installa Memcached sul tuo sistema, rendendolo accessibile dalla riga di comando. Per garantire che il sistema riconosca le nuove librerie, eseguire quanto segue:

sudo ldconfig

Verifica l'installazione di Memcached

Per verificare che Memcached sia installato correttamente, esegui il comando seguente:

memcached -V

Questo comando visualizzerà la versione Memcached installata, confermando l'avvenuta installazione dal codice sorgente.

Crea un servizio Systemd per Memcached

Quando installi Memcached dall'origine, non crea automaticamente un file di servizio systemd. Per eseguire Memcached come servizio e gestirlo utilizzando systemctl, è necessario creare un file di servizio systemd personalizzato per Memcached. Seguire questi passaggi per creare e abilitare il servizio:

Crea un nuovo file chiamato memcached.service nel /etc/systemd/system directory utilizzando un editor di testo a tua scelta. In questo esempio useremo nano:

sudo nano /etc/systemd/system/memcached.service

Aggiungi il seguente contenuto al file memcached.service file:

[Unit]
Description=Memcached Service
After=network.target

[Service]
Type=simple
User=memcache
Group=memcache
ExecStart=/usr/local/bin/memcached /etc/memcached.conf
Restart=always

[Install]
WantedBy=multi-user.target

Salvare il file e uscire dall'editor di testo.

Creare un memcache utente e gruppo per eseguire il servizio in modo sicuro:

sudo useradd -r -s /sbin/nologin -U -M memcache

Ricaricare la configurazione di systemd per riconoscere il nuovo file di servizio:

sudo systemctl daemon-reload

Infine, avvia il servizio:

sudo systemctl enable memcached --now

Gestione dello stato del servizio Memcached

Questa sezione riguarderà la gestione del servizio Memcached sul tuo sistema Debian. Ciò include il controllo dello stato del servizio, l'avvio e l'arresto del servizio e la configurazione per l'esecuzione all'avvio del sistema.

Controlla lo stato del servizio Memcached

Per impostazione predefinita, Memcached dovrebbe essere in esecuzione dopo l'installazione. Per verificarne lo stato, utilizzare il file systemctl comandare come segue:

systemctl status memcached

Questo comando visualizzerà lo stato corrente del servizio Memcached.

Avvia il servizio Memcached

Se Memcached non è in esecuzione, puoi avviare il servizio con il seguente comando:

sudo systemctl start memcached

Abilita Memcached all'avvio del sistema

Per garantire che il servizio Memcached si avvii automaticamente all'avvio del sistema, utilizzare il seguente comando:

sudo systemctl enable memcached

Arresta il servizio Memcached

Se è necessario interrompere il servizio Memcached, utilizzare questo comando:

sudo systemctl stop memcached

Disabilita Memcached all'avvio del sistema

Per impedire l'avvio automatico del servizio Memcached all'avvio del sistema, eseguire il comando seguente:

sudo systemctl disable memcached

Riavviare il servizio Memcached

Se è necessario riavviare il servizio Memcached, ad esempio, dopo aver apportato modifiche alla configurazione, utilizzare questo comando:

sudo systemctl restart memcached

Verifica che Memcached sia in ascolto sulla porta predefinita

Infine, verifica che Memcached sia attivamente in ascolto sull'host locale utilizzando la porta predefinita 11211. Per confermarlo, esegui il seguente comando:

ps -ef | grep memcached

L'output dovrebbe visualizzare una riga che indica che Memcached è in esecuzione e in ascolto sulla porta specificata, simile alla seguente:

memcache    5934       1  0 09:36 ?        00:00:00 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid
root        6591    3653  0 09:55 pts/0    00:00:00 grep memcached

Configura i suggerimenti Memcached

Questa sezione riguarderà la configurazione delle impostazioni di Memcached modificando il file memcached.conf file. Discuteremo la regolazione dell'indirizzo IP di ascolto, la disabilitazione dell'UDP e la modifica dell'allocazione di memoria predefinita.

Apri il file di configurazione Memcached

Apri il file di configurazione Memcached che si trova in /etc/memcached.conf utilizzando un editor di testo, come nano:

sudo nano /etc/memcached.conf

Gli utenti che hanno compilato Memcached dal sorgente dovranno crearlo così quando lo aprirai per la prima volta; il file risulterà vuoto rispetto al metodo APT; puoi copiarlo per iniziare la regolazione:

# Example memcached.conf file

# Start with a cap of 64 megs of memory. It's reasonable, and the daemon default
# Note that the daemon will grow to this size, but does not start out holding this much
# memory
-m 64

# Default port is 11211
-p 11211

# Run the daemon as a background process
-d

# Use syslog logging
-s

# Enable verbose logging
-vv

# Set the maximum number of simultaneous connections
-c 1024

Regola l'indirizzo IP di ascolto

Per impostazione predefinita, Memcached ascolta l'indirizzo IP 127.0.0.1. Controlla il parametro -l nel file di configurazione e assicurati che sia impostato sull'indirizzo IP corretto. Se è necessario modificare l'indirizzo IP, sostituirlo 127.0.0.1 con il nuovo indirizzo IP:

-l 127.0.0.1

Disabilita UDP (facoltativo)

Se non hai bisogno del supporto UDP, si consiglia di disabilitarlo. Per disabilitare UDP, aggiungi la seguente riga al file di configurazione:

-U 0

Configurare l'allocazione della memoria

L'allocazione di memoria predefinita per Memcached è 64 MB, che potrebbe non essere sufficiente per i siti Web più grandi. Valuta la possibilità di modificare l'allocazione di memoria su un valore più alto per massimizzare Memcached.

Per impostare l'allocazione della memoria, trovare il file -m parametro nel file di configurazione e sostituire il valore predefinito con la quantità desiderata (in MB). Ad esempio, per allocare 2 GB di memoria impostare il valore su 2000:

-m 2000

Modifica questa impostazione in base alla memoria disponibile e ai requisiti del tuo server.

Salva e riavvia Memcached

Dopo aver apportato le modifiche necessarie, salvare il file di configurazione premendo CTRL+O, seguito da Y, poi CTRL+X per uscire dall'editor di testo. Infine, riavvia il servizio Memcached affinché le modifiche abbiano effetto:

sudo systemctl restart memcached

Ulteriori esempi di configurazione Memcached

Oltre alle opzioni di configurazione trattate in precedenza, ci sono molte altre impostazioni che puoi regolare per ottimizzare Memcached in base alle tue esigenze. Ecco alcuni esempi, insieme a brevi dimostrazioni:

Specificare l'utente e il gruppo

Memcached viene eseguito con un utente e un gruppo specifici specificati utilizzando il file -u parametro. Ad esempio, per eseguire Memcached come file memcache utente, aggiungere la seguente riga al file di configurazione:

-u memcache

Abilita pagine di memoria di grandi dimensioni

L'abilitazione di questa funzionalità può migliorare le prestazioni se il sistema supporta pagine di memoria di grandi dimensioni. Per abilitare pagine di memoria di grandi dimensioni, trovare il file -L parametro e decommentarlo (rimuovere il file # all'inizio della riga):

-L

Configura la dimensione massima dell'articolo

Memcached ha una dimensione massima predefinita degli elementi di 1 MB. Per aumentare la dimensione massima dell'elemento, utilizzare il file -I parametro seguito dalla dimensione desiderata. Ad esempio, per impostare la dimensione massima dell'elemento su 5 MB, aggiungi la seguente riga al file di configurazione:

-I 5m

Imposta il numero massimo di thread

Memcached utilizza quattro thread per impostazione predefinita. Puoi utilizzare il parametro per aumentare o diminuire il numero di thread in base alle capacità e al carico di lavoro del tuo server. Ad esempio, per impostare il numero di thread su 8, aggiungi la seguente riga:

-t 8

Configurare il timeout di inattività

Memcached chiude automaticamente le connessioni inattive dopo un certo periodo di inattività. Per modificare il timeout di inattività, utilizzare il file -o parametro seguito da idle_timeout e il numero di secondi desiderato. Ad esempio, per impostare il timeout di inattività su 600 secondi (10 minuti), aggiungi la seguente riga:

-o idle_timeout=600

Abilita l'autenticazione SASL

Puoi abilitare il supporto SASL (Simple Authentication and Security Layer) se richiedi l'autenticazione per accedere al tuo server Memcached. Per abilitare SASL, trova il file -S parametro e decommentarlo (rimuovere il file # all'inizio della riga):

-S

Ricordati di riavviare sempre il servizio Memcached dopo aver apportato modifiche al file di configurazione:

sudo systemctl restart memcached

Installa il firewall UFW per Memcached

Per garantire la sicurezza della tua istanza Memcached, è fondamentale configurare correttamente le regole del firewall. Questa sezione spiegherà come installare e configurare Uncomplicated Firewall (UFW) per proteggere il tuo server Memcached.

Controlla se UFW è installato

Per prima cosa verifichiamo se UFW è già installato sul tuo sistema Debian:

sudo ufw --version

Se UFW è installato, vedrai il suo numero di versione nell'output. In caso contrario, dovrai installarlo.

Installa UFW su Debian per Memcached

Per installare UFW sul tuo sistema Debian, esegui il seguente comando:

sudo apt install ufw

Al termine dell'installazione, abilitare UFW con il seguente comando:

sudo ufw enable

Configura le regole UFW per Memcached

Ora che UFW è installato e abilitato, devi creare regole di autorizzazione sulla porta TCP 11211. Le regole che creerai dipenderanno dall'installazione e dai requisiti, sia che si utilizzi una singola connessione di rete IP o che si lavori con più istanze in una rete cluster.

Esempio di connessione di rete con IP singolo

Consenti l'accesso a Memcached da un indirizzo IP specifico:

sudo ufw allow proto tcp from <ip_address> to any port 11211

Esempio di connessione di rete IP in cluster con più istanze

Consenti l'accesso a Memcached da una sottorete di indirizzi IP:

sudo ufw allow proto tcp from <ip_address>/24 to any port 11211

Tieni presente che la seconda regola UFW è una regola di sottorete. Assicurarsi che la rete interna sia sicura e affidabile prima di consentire l'accesso.

Passaggio 4: verifica le regole UFW

Dopo aver impostato le regole appropriate, verifica che siano configurate correttamente elencando le regole UFW attuali:

sudo ufw status

L'output dovrebbe mostrare le regole configurate, assicurando che la tua istanza Memcached sia protetta con UFW.

Installa le librerie Memcached

Memcached offre estensioni per vari linguaggi di programmazione, ma è più comunemente usato con PHP. Questa sezione ti guiderà attraverso l'installazione delle librerie Memcached per PHP, Python e Perl e la configurazione di Memcached per i server web Apache e Nginx.

Installa le librerie PHP per Memcached

Per installare la libreria PHP per Memcached, esegui il comando seguente:

sudo apt install php-memcached libapache2-mod-php php php-cli

Configura Memcached per Apache HTTP Server

Se stai utilizzando il server HTTP Apache, abilita il modulo Memcached eseguendo il seguente comando:

sudo phpenmod memcached && sudo systemctl restart apache2

Configura Memcached per Nginx HTTP Server

Il supporto Memcached sarà abilitato per impostazione predefinita nel blocco di configurazione PHP una volta installata la libreria PHP per gli utenti Nginx.

Di seguito è riportato un semplice esempio di blocco del server nginx:

server {
    listen 80;
    server_name example.com;

    root /var/www/example.com;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

Installa la libreria Python per Memcached

Per installare il supporto Python per Memcached, esegui il comando seguente:

sudo apt install python3-pymemcache

Installa la libreria Perl per Memcached

Per installare il supporto Perl per Memcached, esegui il seguente comando:

sudo apt install libcache-memcached-libmemcached-perl

Accedi a Memcached dalla riga di comando

Memcached può essere monitorato e gestito tramite vari software e interfacce utente web. Tuttavia, interagire direttamente con Memcached utilizzando la riga di comando è spesso il metodo più semplice per verificarne le prestazioni e gestirne i contenuti.

Innanzitutto, connettiti al tuo servizio Memcached utilizzando telnet:

telnet localhost 11211

Esempio di output:

Provando 127.0.0.1... Connesso a localhost. Il carattere di escape è '^]'.

Successivamente, puoi ottenere una panoramica del tuo servizio Memcached con il seguente comando:

stats

Questo comando restituirà varie statistiche sulla tua istanza Memcached, come il tempo di attività, il numero di elementi nella cache e il numero di connessioni client.

Puoi affinare la tua analisi esaminando le lastre Memcached (partizioni di memoria). Ad esempio, puoi elencare i solai nell'istanza connessa con:

stats slabs

E ottieni un elenco di lastre, incluso il conteggio degli elementi archiviati all'interno di ciascuna lastra, utilizzando:

stats items

Per accedere e manipolare i dati archiviati in Memcached, è possibile utilizzare il file cachedump comando per elencare le chiavi. Per elencare tutti gli elementi in una lastra specifica, eseguire il seguente comando:

stats cachedump [slab ID] [number of items, 0 for all items]

Per esempio:

stats cachedump 1 0

Esempio di output:

Tasto test ELEMENTO [9 b; 1296857316 s] FINE

In questo esempio, la lastra 1 contiene un elemento con la chiave "testkey". Per recuperare il valore di questo articolo, utilizzare il file get comando:

get testkey

Esempio di output:

VALORE chiave test 0 9 dati test FINE

Infine, per eliminare un elemento memorizzato nella cache, come “testkey”, utilizzare il seguente comando:

delete testkey

Esempio di output:

ELIMINATO

Conclusione

In conclusione, l'installazione e la configurazione di Memcached su Debian Linux possono migliorare significativamente le prestazioni delle tue applicazioni web fornendo un sistema di caching veloce, efficiente e facile da usare. Seguendo i passaggi descritti in questa guida, puoi impostare correttamente Memcached, configurarlo con il tuo server web preferito e proteggerlo utilizzando UFW. Con la corretta configurazione e gestione, Memcached può diventare essenziale per ottimizzare le tue applicazioni e fornire una migliore esperienza utente.

Joshua James
Seguimi
Ultimi post di Joshua James (vedi tutto)

Lascia un commento