WordPress su Nginx: Configurazione Completa per Performance Massima

18 aprile 20263 minPerformance
In breveAI

Migliora le prestazioni del tuo sito WordPress con la configurazione Nginx completa. Scopri come ottimizzare il server per velocizzare il caricamento delle pagine e migliorare la sicurezza, grazie a una guida pratica e facile da seguire per sostituire Apache con Nginx.

WordPress su Nginx: La Configurazione Completa per Performance Massima

Apache con .htaccess è il default WordPress. Nginx è il default per chi vuole performance. Nginx serve file statici 2-3x più velocemente di Apache, usa meno RAM per connessione, e gestisce più connessioni concorrenti.

Questo articolo è la configurazione Nginx completa per WordPress: dal server block base alle ottimizzazioni avanzate, pronta da copiare.

Server Block Base

server {
    listen 80;
    server_name tuosito.com www.tuosito.com;
    return 301 https://tuosito.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name tuosito.com;
    root /var/www/tuosito;
    index index.php;
    
    # SSL
    ssl_certificate /etc/letsencrypt/live/tuosito.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/tuosito.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    
    # Security headers
    include snippets/security-headers.conf;
    
    # WordPress permalink
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    
    # PHP processing
    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
    }
    
    # Static files
    location ~* \.(css|js|jpg|jpeg|png|gif|ico|webp|avif|woff2|svg)$ {
        expires 365d;
        add_header Cache-Control "public, immutable";
        access_log off;
    }
    
    # Block sensitive files
    location ~* /\.(htaccess|htpasswd|ini|log|sh|sql)$ { deny all; }
    location = /xmlrpc.php { deny all; }
    location ~* /wp-content/uploads/.*\.php$ { deny all; }
    
    # Block wp-admin for non-allowed IPs (opzionale)
    # location /wp-admin { allow 203.0.113.0/24; deny all; }
    
    # Gzip
    gzip on;
    gzip_comp_level 5;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml text/javascript image/svg+xml;
}

FastCGI Cache (Aggiunta Raccomandata)

La configurazione completa è nel nostro articolo su velocizzare WordPress senza plugin. In sintesi: aggiungi una cache zone nel nginx.conf e le regole di bypass nel server block.

Rate Limiting per wp-login.php

# In nginx.conf (fuori dal server block)
limit_req_zone $binary_remote_addr zone=wplogin:10m rate=3r/s;

# Nel server block
location = /wp-login.php {
    limit_req zone=wplogin burst=5 nodelay;
    include fastcgi_params;
    fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

Multisite WordPress su Nginx

# Per WordPress Multisite con subdirectory
if (!-e $request_filename) {
    rewrite /wp-admin$ $scheme://$host$uri/ permanent;
    rewrite ^(/[^/]+)?(/wp-.*) $2 last;
    rewrite ^(/[^/]+)?(/.*\.php) $2 last;
}

Checklist Post-Configurazione

  1. nginx -t passa senza errori
  2. ☐ Homepage carica in HTTPS
  3. ☐ Redirect HTTP → HTTPS funziona
  4. ☐ Permalink WordPress funzionano (non 404 sulle pagine)
  5. ☐ wp-admin accessibile
  6. ☐ Upload media funziona
  7. ☐ xmlrpc.php restituisce 403
  8. ☐ File PHP in uploads restituisce 403

FAQ

Devo migrare da Apache a Nginx?

Se le performance contano (e contano sempre), sì. La migrazione è un evento una tantum. Il beneficio è permanente: meno RAM, più velocità, configurazione più pulita. L’unica complicazione: i file .htaccess non funzionano su Nginx (devi convertire le regole nella config Nginx).

Nginx e WooCommerce?

Funziona perfettamente. L’unica attenzione: escludi /cart/, /checkout/ e /my-account/ dalla FastCGI cache. Il resto del sito beneficia enormemente della cache.

Gestisci i siti WordPress dei tuoi clienti?

AgencyPilot ti dà report AI, uptime monitoring, backup e portale clienti in un’unica dashboard. Gratis per 3 siti.

Prova gratis
Leggi anche
Tutti gli articoli
Tutti gli articoli