GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare la cache Nginx sul server LEMP

Nginx è un server web gratuito e open source, per non parlare di uno dei server web più utilizzati al mondo. Può essere utilizzato come proxy inverso, proxy di posta, bilanciamento del carico e server di memorizzazione nella cache. Nginx è altamente scalabile e appositamente progettato per le massime prestazioni e stabilità. Utilizza un'architettura basata sugli eventi e gestisce ogni richiesta in entrata in un singolo thread.

Nginx viene fornito con un modulo FastCGI che può essere utilizzato per memorizzare nella cache i contenuti dinamici serviti dal backend PHP. Non è necessario configurare altre soluzioni di memorizzazione nella cache come Redis, Varnish, Memcache dopo aver configurato Nginx con FastCGI cache.

In questo tutorial, ti mostreremo come configurare la cache Nginx FastCGI con LEMP su Ubuntu 18.04.

Prerequisiti

  • Un nuovo VPS Ubuntu 18.04 sulla piattaforma Atlantic.Net Cloud
  • Una password di root configurata sul tuo server

Fase 1:crea un server cloud Atlantic.Net

Per prima cosa, accedi al tuo server Atlantic.Net Cloud. Crea un nuovo server, scegliendo Ubuntu 18.04 come sistema operativo, con almeno 1GB 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 il server LEMP

Iniziamo con l'installazione di LEMP (Nginx, PHP, PHP-FPM) sul tuo server.

apt-get install nginx php php-cli php-fpm -y

Il comando precedente installerà anche il server Web Apache nel tuo sistema, quindi dovrai interrompere e disabilitare il servizio Apache.

systemctl stop apache2
systemctl disable apache2

Quindi, avvia il servizio Nginx e PHP-FPM con il seguente comando:

systemctl start nginx
systemctl start php7.2-fpm

Una volta terminato, puoi procedere al passaggio successivo.

Fase 3:crea un sito Web di esempio

Innanzitutto, crea una directory per il tuo sito Web con il seguente comando:

mkdir /var/www/html/example.com

Quindi, crea un file info.php di esempio all'interno della directory del tuo sito Web:

nano /var/www/html/example.com/info.php

Aggiungi le seguenti righe:

<?php phpinfo(); ?>

Salva e chiudi il file. Quindi, cambia la proprietà del tuo sito web in www-data user:

chown -R www-data:www-data /var/www/html/example.com
chmod -R 755 /var/www/html/example.com

Una volta terminato, puoi procedere al passaggio successivo.

Fase 4 – Configura Nginx con FastCGI Cache

Successivamente, dovrai creare un nuovo file di configurazione dell'host virtuale Nginx per servire il tuo sito Web e abilitare la cache FastCGI.

nano /etc/nginx/sites-available/example.com.conf

Aggiungi le seguenti righe:

# Enable FastCGI Support
fastcgi_cache_path /etc/nginx/cache levels=1:2 keys_zone=nginxcache:150m max_size=1g 
inactive=60m use_temp_path=off;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
add_header X-Cache $upstream_cache_status;

server {
listen 80;
root /var/www/html/example.com;
client_max_body_size 256M;
index info.php;
server_name example.com;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location = /favicon.ico { access_log off; log_not_found off; }

#Disable caching for login session, user cookie, POST request, query string, site map and feeds
set $skip_cache 0;
if ($request_method = POST) {
set $skip_cache 1;
}
if ($query_string != "") {
set $skip_cache 1;
}

# Enable caching for your website.
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index info.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
fastcgi_cache nginxcache;
fastcgi_cache_valid 200 301 302 60m;
fastcgi_cache_use_stale error timeout updating invalid_header http_500 http_503;
fastcgi_cache_min_uses 1;
fastcgi_cache_lock on;

}
}

Salva e chiudi il file quando hai finito, quindi controlla Nginx per eventuali errori di sintassi con il seguente comando:

nginx -t

Dovresti ottenere il seguente output:

Quindi, abilita il file host virtuale Nginx con il seguente comando:

ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

Infine, ricarica il servizio Nginx per applicare le modifiche:

systemctl restart nginx

Di seguito viene mostrata una breve spiegazione di ciascuna direttiva nel file di configurazione sopra:

  • percorso_cache_fastcgi crea una cache FastCGI e specifica la posizione della cache, il nome della zona di memoria (nginxcache) con dimensione (150M), max_size (1G) e definisce la chiave per la ricerca della cache.
  • aggiungi_intestazione viene utilizzato per convalidare se la richiesta è stata servita dalla cache di FastCGI o meno.
  • fastcgi specifica il percorso del socket php-fpm.
  • fastcgi_cache abilita la memorizzazione nella cache, che abbiamo specificato utilizzando la zona di memoria nella direttiva fastcgi_cache_path.
  • fastcgi_cache_valid imposta il tempo della cache con il codice di stato 200, 301, 302 verrà memorizzato nella cache per 60 minuti.
  • fastcgi_cache_lock consente solo la prima richiesta tramite il server PHP-FPM a monte.

Passaggio 5:verifica della cache Nginx FastCGI

A questo punto, Nginx è installato e configurato con il supporto FastCGI Cache. È ora di verificare se la memorizzazione nella cache funziona o meno.

Apri il tuo browser web, accedi al tuo server web Nginx utilizzando l'URL http://example.com e ricarica la pagina alcune volte.

Quindi, apri il tuo terminale ed esegui il seguente comando per recuperare l'intestazione della risposta http.

curl -I http://example.com

Dovresti ottenere il seguente output:

HTTP/1.1 200 OK
Server: nginx/1.14.0 (Ubuntu)
Date: Fri, 24 Apr 2020 16:07:24 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Cache: HIT

Dall'output sopra, X-Cache:HIT indica che la risposta è stata fornita dalla cache.

Conclusione

Congratulazioni! Hai configurato correttamente Nginx con il supporto FastCGI Cache. Dopo aver abilitato la memorizzazione nella cache, dovresti notare un enorme miglioramento delle prestazioni perché le pagine vengono caricate senza dover essere renderizzate da PHP. Prova oggi FastCGI Cache su Nginx con il servizio di hosting VPS di Atlantic.Net.


Linux
  1. Come reindirizzare da HTTP a HTTPS in Nginx

  2. Come configurare un server LEMP su Debian 10 Buster

  3. Come configurare i blocchi del server Nginx in Ubuntu 18.04 LTS

  4. Come installare LEMP su Ubuntu 16.04

  5. Come configurare il server NTP in CentOS?

Come configurare NGINX su un server CentOS 7

Come configurare HAProxy su CentOS 8

Come configurare la cache Nginx su un server LAMP

Come installare lo stack LEMP su Rocky Linux 8

Come installare il server LEMP su Oracle Linux 8

Come configurare un server NGINX RTMP per lo streaming