Memcached è un sistema di memorizzazione nella cache di oggetti di memoria distribuito, gratuito e ad alte prestazioni scritto in linguaggio C. Viene utilizzato per velocizzare i siti Web dinamici basati su database memorizzando nella cache dati e oggetti nella RAM. Memcached funziona memorizzando il contenuto della tabella del database del sito Web e della query nella memoria, aumentando drasticamente le prestazioni del sito Web. Puoi creare e distribuire un sito Web altamente scalabile e ad alte prestazioni con Memcached. Memcached è ora utilizzato da molte aziende tra cui Facebook, Reddit, Wikipedia, Craigslist, Yellowbot, YouTube e altre ancora.
In questo tutorial, spiegheremo le istruzioni dettagliate su come installare e proteggere Memcache su Ubuntu 18.04 VPS.
Prerequisiti
- Un nuovo server VPS Ubuntu 18.04 su Atlantic.Net Cloud.
- È stata impostata una password di root sul tuo VPS.
Fase 1:crea un server cloud Atlantic.Net
Innanzitutto, accedi al tuo server Atlantic.Net Cloud. Crea un nuovo server, scegliendo Ubuntu 18.04 come sistema operativo, con almeno 2GB di RAM. Collegati al tuo Cloud Server tramite SSH e accedi utilizzando le credenziali evidenziate in alto nella pagina.
Dopo aver effettuato l'accesso al tuo server Ubuntu 18.04, esegui il comando seguente per aggiornare il tuo sistema di base con gli ultimi pacchetti disponibili.
apt-get update -y
Fase 2 – Installa Apache e PHP
Innanzitutto, dovrai installare il server web Apache e PHP sul tuo server. Puoi installarli con il seguente comando:
apt-get install apache2 php php-dev php-pear libapache2-mod-php -y
Una volta installati tutti i pacchetti, avvia il server web Apache e abilitalo all'avvio dopo il riavvio del sistema con il seguente comando:
systemctl avvia apache2systemctl abilita apache2
Fase 3 – Installa Memcached
apt-get install memcached libmemcached-tools php-memcached -y
Una volta installato, è necessario riavviare il servizio Apache per applicare le modifiche:
systemctl riavvia apache2
Successivamente, puoi controllare lo stato del servizio Memcached con il seguente comando:
stato systemctl memorizzato nella cache
Dovresti ottenere il seguente output:
● memcached.service - daemon memcached Caricato:caricato (/lib/systemd/system/memcached.service; abilitato; preimpostazione del fornitore:abilitato) Attivo:attivo (in esecuzione) da ven 30-08-2019 09:30:02 UTC; 41 secondi fa Docs:man:memcached(1) PID principale:19088 (memcached) Compiti:10 (limite:1114) CGroup:/system.slice/memcached.service └─19088 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pidAug 30 09:30:02 ubuntu1804 systemd[1]:daemon memcached avviato.
netstat -plunt | grep memorizzato nella cache
Uscita:
tcp 0 0 127.0.0.1:11211 0.0.0.0:* ASCOLTA 19088/memcached
Puoi anche controllare le statistiche correnti del tuo server Memcached con il seguente comando:
eco "impostazioni statistiche" | nc localhost 11211
Dovresti ottenere il seguente output:
STAT maxbytes 67108864STAT maxconns 1024STAT tcpport 11211STAT udpport 0STAT inter 127.0.0.1STAT verbosity 0STAT oldest 0STAT evictions onSTAT domain_socket NULLSTAT umask 700STAT growth_factor 1.25STAT chunk_size 48STAT num_threads 4STAT num_threads_per_udp 4STAT stat_key_prefix :STAT detail_enabled noSTAT reqs_per_event 20STAT cas_enabled yesSTAT tcp_backlog 1024STAT binding_protocol auto- negoziare
Fase 4 – Configura Memcached
Il file di configurazione di Memcache predefinito si trova in /etc/memcached.conf. Ora apri il file di configurazione di Memcached e imposta Memcached in ascolto su localhost(127.0.0.1), con 2 GB di memoria, e consenti un massimo di 1000 connessioni:
nano /etc/memcached.conf
Apporta le seguenti modifiche:
# Esegui memcached come demone. Questo comando è implicito e non è necessario per l'output di -d# Log memcached in /var/log/memcachedlogfile /var/log/memcached.log# memory-m 2048# La porta di connessione predefinita è 11211-p 11211# Esegui il demone come radice. start-memcached verrà eseguito automaticamente come root se no# -u comando è presente in questo file di configurazione-u memcache# Specifica su quale indirizzo IP ascoltare. L'impostazione predefinita è ascoltare su tutti gli indirizzi IP-l 127.0.0.1# Limita il numero di connessioni in entrata simultanee. Il demone predefinito è 1024-c 500# Usa un pidfile-P /var/run/memcached/memcached.pid
Salva e chiudi il file. Quindi, riavvia il servizio Memcached per applicare le modifiche:
systemctl riavvia memcached
Fase 5:prova memcached
Memcached è ora installato e funzionante. Quindi, controlla se l'estensione PHP Memcache è abilitata e funziona correttamente. Per fare ciò, crea un file info.php all'interno della directory principale di Apache:
nano /var/www/html/info.php
Aggiungi le seguenti righe:
Salva e chiudi il file. Quindi, apri il tuo browser web e digita l'URL http://your-server-ip/info.php. Dovresti ottenere la seguente pagina con Memcached abilitato:
È buona norma rimuovere il file info.php dopo il test per proteggere il tuo server dagli hacker.
Rm -rf /var/www/html/info.php
Passaggio 6:memcached sicuro con SASL
Senza alcuna sicurezza, Memcached può contribuire agli attacchi Denial of Service. Si consiglia di proteggere Memcached con il supporto SASL e l'autenticazione dell'utente.
Innanzitutto, controlla la connessione Memcached senza alcuna sicurezza eseguendo il comando seguente:
memcstat --servers="127.0.0.1"
Uscita:
Server:127.0.0.1 (11211) pid:16805 tempo di attività:764 tempo:1566107468 versione:1.5.6 table . sQuindi, apri il file di configurazione Memcached e abilita il supporto SASL e la registrazione dettagliata con il comando seguente:
nano /etc/memcached.confAggiungi la seguente riga alla fine del file:
-S-vvSalva e chiudi il file. Quindi, riavvia il servizio Memcached:
systemctl riavvia memcachedQuindi, controlla il registro Memcached per verificare se il supporto SASL è stato abilitato o meno:
journalctl -u memorizzato nella cacheDovresti vedere il seguente output con il supporto SASL:
18 agosto 05:52:37 hitesh30 09:47:14 ubuntu1804 systemd-memcached-wrapper[19941]:SASL inizializzato.Quindi, controlla nuovamente la connettività Memcached con il seguente comando:
memcstat --servers="127.0.0.1"Non dovresti ottenere alcun output; ciò significa che il supporto SASL è stato abilitato in Memcached.
Successivamente, dovrai aggiungere un utente autenticato per Memcached.
Per farlo, installa prima il pacchetto SASL con il seguente comando:
apt-get install sasl2-bin -yUna volta installato, crea una directory e un file per la configurazione SASL:
mkdir /etc/sasl2nano /etc/sasl2/memcached.confAggiungi le seguenti righe:
lista_meccanica:plainlog_level:5sasldb_path:/etc/sasl2/memcached-sasldb2Salva e chiudi il file. Quindi, crea un database SASL con l'utente chiamato memcacheadmin con il seguente comando:
saslpasswd2 -a memcached -c -f /etc/sasl2/memcached-sasldb2 utente1Ti verrà chiesto di inserire la password:
Password:Ancora (per la verifica):Quindi, cambia la proprietà del database SASL:
chown memcache:memcache /etc/sasl2/memcached-sasldb2Infine, riavvia il servizio Memcached per applicare le modifiche alla configurazione:
systemctl riavvia memcachedQuindi, controlla nuovamente la connettività Memcached con le nostre credenziali di autenticazione:
memcstat --servers="127.0.0.1" --username=user1 [email protected]Dovresti ottenere il seguente output:
Server:127.0.0.1 (11211) pid:18776 tempo di attività:30 tempo:1566107912 versione:1.5.6 Ubuntu pre table .Ciò significa che Memcached è ora protetto con il supporto SASL e l'autenticazione dell'utente.