Capire Nginx

EGPHP usa Nginx (si pronuncia «engine-x») come server web. Nginx è noto per le alte prestazioni, la stabilità e il consumo ridotto di risorse. A differenza di Apache non usa i file .htaccess.

Niente .htaccess: Nginx non supporta i file .htaccess. Le stesse funzioni si ottengono dai suoi file di configurazione.

Aprire le impostazioni di Nginx

  1. Accedi a EGPNL
  2. Vai su Domini
  3. Fai clic sul tuo dominio
  4. Scegli Configurazione Nginx oppure Impostazioni avanzate

Le configurazioni Nginx più comuni

Reindirizzare da HTTP a HTTPS

Obbliga tutto il traffico a passare da HTTPS:

if ($scheme != "https") {
    return 301 https://$host$request_uri;
}

Reindirizzare da www al dominio senza www

if ($host ~* ^www\.(.*)) {
    return 301 https://$1$request_uri;
}

Reindirizzare dal dominio senza www a www

if ($host !~* ^www\.) {
    return 301 https://www.$host$request_uri;
}

Permalink leggibili di WordPress

Servono per gli indirizzi di WordPress adatti ai motori di ricerca:

location / {
    try_files $uri $uri/ /index.php?$args;
}
Se usi WordPress: EGPNL configura da sé i permalink quando aggiungi un sito WordPress. Non devi fare nulla a mano.

Intestazioni di sicurezza

Aggiungi le intestazioni di sicurezza per proteggere il sito:

add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;

Configurazione della cache

Attiva la cache del browser per i file statici:

location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff2|woff|ttf)$ {
    expires 30d;
    add_header Cache-Control "public, immutable";
}

Compressione gzip

Attiva la compressione gzip per caricare le pagine più in fretta (di norma è già attiva):

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
gzip_min_length 1000;

Pagine di errore personalizzate

Imposta pagine personalizzate per gli errori 404 e 500:

error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;

Bloccare l'accesso

Bloccare determinati IP

deny 123.45.67.89;
deny 98.76.54.0/24;

Bloccare determinati file

location ~ /\.(htaccess|htpasswd|git|svn) {
    deny all;
}

Proteggere una cartella con password

location /admin {
    auth_basic "Restricted";
    auth_basic_user_file /path/to/.htpasswd;
}

Riscritture degli indirizzi

Riscrivi gli indirizzi senza reindirizzare:

# Rewrite old URL to new URL internally
rewrite ^/old-page$ /new-page last;

# Redirect old URL to new URL (301)
rewrite ^/old-url$ /new-url permanent;

Configurazione di PHP

Regola le impostazioni di PHP per il tuo dominio:

location ~ \.php$ {
    fastcgi_param PHP_VALUE "
        upload_max_filesize=64M
        post_max_size=64M
        max_execution_time=300
    ";
}
Attenzione: una configurazione sbagliata di Nginx può rendere irraggiungibile il sito. Salva sempre una copia della configurazione attuale prima di modificarla.

Provare la configurazione

Dopo aver fatto le modifiche:

  1. EGPNL controlla la configurazione in automatico
  2. Se ci sono errori comparirà un avviso
  3. Correggi gli errori prima di salvare
  4. A salvataggio riuscito Nginx si ricarica da sé