configurare wordpress per nginx
stampa questo articolo

Come configurare wordpress per nginx

Hai da poco installato wordpress su stack LEMP con nginx e vorresti configurare un plugin di caching per velocizzare il tuo blog? Non sai quale plugin di caching utilizzare per rendere il tuo website più performante? Non sai come configurare wordpress per nginx?

Allora seguimi perché in questo articolo ti farò vedere come configurare al meglio nginx e wordpress per i tre principali plugin di caching ovvero WP Super Cache, WP Rocket e W3 Total Cache

Vuoi sapere se le performance del tuo blog wordpress potrebbero essere migliorate? Ti interessa sapere come fare a configurare un plugin di caching per il tuo blog su stack LEMP con nginx?

   CONTATTAMI

Prerequisiti per l’esecuzione del tutorial

Come prerequisito indispensabile devi avere una VPS dedicata con preinstallato lo stack LEMP ovvero Linux (in questo tutorial utilizzo Ubuntu 18.04), nginx, MySQL, php e soprattutto wordpress installato e funzionante.

Se non sai cosa sia lo stack LEMP oppure vuoi sapere come installarlo su VPS dedicata allora ti consiglio questo mio articolo:

Se non sai come fare per installare wordpress su stack LEMP ti consiglio questo mio articolo:

Inoltre devi avere un utente (possibilmente non root) con diritti di accesso sudo

I migliori plugin di caching per wordpress

Esistono moltissimi plugin di caching per wordpress ovvero plugin che consentono di creare delle copie su disco (o anche in memoria) delle pagine web più utilizzate del blog. In questo modo quando un utente richiede una pagina viene fornita la versione in cache (statica su file) invece della versione a runtime (generata dal php con accesso al database).

Utilizzare un plugin di caching per wordpress è una buona pratica per una serie di motivi quali, ad esempio:

  • velocizzazione nel caricamento delle pagine
  • riduzione del carico del webserver
  • integrazione con cdn esterne (Cloudflare, KeyCDN, …)
  • compressione dei contenuti

In questo articolo ti farò vedere come configurare al meglio la coppia wordpress e nginx per i seguenti plugin di caching: WP Rocket ,W3 Total Cache e WP Super Cache

Ottimizzare wordpress con nginx

Prima di vedere come configurare i plugin di caching è necessario rivedere la configurazione generale di nginx per l’ottimizzazione con wordpress.

Se hai seguito i miei precedenti tutorial su come installare nginx e come installare wordpress ti troverai nella situazione in cui nginx è installato e configurato nella versione minimale per il corretto funzionamento di wordpress.

Ti ricordo che nei tutorial utilizzerò le seguenti directory per il file di configurazione di nginx e la wwwroot ovvero la home directory del webserver nella quale installare wordpress:

/etc/nginx/sites-available/wordpress => file di configurazione di nginx

/var/wwwroot/html/ => home directory wordpress

Procedi quindi con la modifica del file di configurazione con il comando

$ cd /etc/nginx/sites-available/ 
$ sudo nano wordpress

ed aggiungi

location ~ /\.ht {
     deny all;
}

per inibire eventuali configurazioni fatte con file .htaccess di apache

Configurare WP Rocket con nginx

Per configurare WP Rocket con nginx devi procedere prima di tutto con l’installazione e relativa attivazione del plugin che puoi trovare a questo link.

Una volta attivato è necessario procedere l’installazione del componente rocket-nginx di SatelliteWP, un semplice tool che ti permetterà di ottenere una configurazione ottimale di nginx con WP Rocket, la guida originale la trovi a questo link.

Come prima cosa accedi alla default root di nginx e scarica il tool con i comandi

cd /etc/nginx
git clone https://github.com/satellitewp/rocket-nginx.git

Poi accedi alla directory appena generata e crea il file di configurazione wprocket per nginx con i comandi:

cd rocket-nginx
cp rocket-nginx.ini.disabled rocket-nginx.ini
php rocket-parser.php

Al termine avrai generato il nuovo file default.conf con i settaggi necessari e che dovrai includere nel file di configurazione di nginx, tramite il comando:

$ cd /etc/nginx/sites-available/ 
$ sudo nano wordpress

Aggiungi il testo in grassetto nella sezione “location”:

location / {
             try_files $uri $uri/ =404;
             #Rocket-Nginx Configuration
             include rocket-nginx/default.conf;
}

A questo punto puoi verificare la correttezza dei settaggi con il comando:

$ sudo nginx -t

Se tutto è ok allora puoi riavviare nginx

$ sudo systemctl reload nginx

La configurazione è terminata.

Configurare W3 Total Cache con nginx

Per configurare W3 total cache con nginx devi procedere prima di tutto con l’installazione e relativa attivazione del plugin.

Una volta attivato, il plugin capisce in automatico (ed è l’unico dei tre che lo fa) che il webserver che stai utilizzando è nginx, per cui crea il file nginx.conf nella wwwroot del tuo website:

/var/wwwroot/html/nginx.conf

Il file contiene già tutte le impostazioni necessarie, frutto dei settaggi del plugin, per il corretto funzionamento della cache con nginx, quindi dovrai solo inserire il path corretto di questo file nel file di configurazione di nginx, tramite il comando:

$ cd /etc/nginx/sites-available/ 
$ sudo nano wordpress

Ed aggiungi il testo in grassetto nella sezione “location”:

location / {
             try_files $uri $uri/ =404;
             #W3TC Configuration
             include /var/www/html/nginx.conf;
}

A questo punto puoi verificare la correttezza dei settaggi con il comando:

$ sudo nginx -t

Se tutto è ok allora puoi riavviare nginx

$ sudo systemctl reload nginx

La configurazione è terminata.

Configurare WP Super Cache con nginx

Per configurare WP Super Cache con nginx devi procedere prima di tutto con l’installazione e relativa attivazione del plugin.

Una volta attivato il plugin è necessario effettuare alcune modifiche manuali ai file di configurazione per ottimizzarlo al meglio.

Inizia con il creare il file wp-supercache.conf nella directory snippets con il comando:

sudo nano /etc/nginx/snippets/wp-supercache.conf
inserisci il seguente codice nel file

set $cache_uri $request_uri;

# POST requests and urls with a query string should always go to PHP
if ($request_method = POST) {
set $cache_uri 'null cache';
}

if ($query_string != "") {
set $cache_uri 'null cache';
}

# Don't cache uris containing the following segments
if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php
|wp-.*.php|/feed/|index.php|wp-comments-popup.php
|wp-links-opml.php|wp-locations.php |sitemap(_index)?.xml
|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") {
set $cache_uri 'null cache';
}

# Don't use the cache for logged-in users or recent commenters
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+
|wp-postpass|wordpress_logged_in") {
set $cache_uri 'null cache';
}

# Set the cache file
set $cachefile "/wp-content/cache/supercache/$http_host/$cache_uri/index.html";

if ($https ~* "on") {
set $cachefile "/wp-content/cache/supercache/$http_host/$cache_uri/index-https.html";
}

# Add cache file debug info as header
#add_header X-Cache-File $cachefile;

# Try in the following order: (1) cachefile, (2) normal url, (3) php
location / {
#try_files $cachefile $uri $uri/ /index.php;
try_files $cachefile $uri $uri/ /wp/index.php?q=uri&$args;
}

Salva il file e chiudi l’editor.

Ora non devi far altro che includere il file nel file principale di di nginx con il comando

$ cd /etc/nginx/sites-available/ 
$ sudo nano wordpress

Aggiungi il testo in grassetto nella sezione “location”:

location / {
             try_files $uri $uri/ =404;
             #WP Super Cache Configuration
             include snippets/wp-supercache.conf;
}

A questo punto puoi verificare la correttezza dei settaggi con il comando:

$ sudo nginx -t

Se tutto è ok allora puoi riavviare nginx

$ sudo systemctl reload nginx

La configurazione è terminata.

Conclusioni

In questo articolo ti ho mostrato come configurare al meglio i tre principali plugin per wordpress dedicati al caching dei file php avendo nginx come webserver.

Tutti e tre i plugin sono ottimi, in questo articolo ne metto a confronto pregi e difetti in una configurazione standard ossia con apache ed hosting condiviso.

Cosa ne pensi di questo tutorial? Pensi che anche tu migrerai su VPS dedicata con nginx e wordpress? Quali dei tre plugin preferisci? Raccontami tutto nei commenti!

 

LASCIA UN COMMENTO

Please enter your comment!
Please enter your name here