Per informazione, le impostazioni del server di caching (nel browser del client) massimizzano la memorizzazione nella cache, il che non significa che i browser non lo facciano in modo nativo: infatti, lo fanno già in una certa percentuale, quindi a volte bisogna ignorare quello che dicono i siti di test. Ciò è facilmente dimostrabile da 'Ispeziona elementi' quindi 'rete', vedrai 'cache del disco', 'cache di memoria'
I nostri server utilizzano il server Apache per impostazione predefinita, con Nginx in alto in modalità trasparente: PROXYIn questo caso, è attraverso il file htaccess che è possibile memorizzare nella cache i dati scaricati dal visitatore nel suo browser, è una tecnica di caching che prevale su tutte le altre possibili...In effetti, lo abbiamo abilitato per impostazione predefinita a livello di server apache in questo modo universale:
<IfModule mod_expires.c>
Scade attivo il
ExpiresByType image/gif "accesso più 1 settimana
ExpiresByType image/jpeg "accesso più 1 settimana
ExpiresByType image/jpg "accesso più 1 settimana
ExpiresByType image/png "accesso più 1 settimana
ExpiresByType text/css "accesso più 1 settimana
ExpiresByType text/html "modifica più di 1 settimana"
ExpiresByType text/xml "modifica più di 2 ore"
ExpiresByType text/javascript "accesso più 1 settimana
ExpiresByType applicazione/javascript "accesso più 1 settimana
ExpiresByType application/x-javascript "accesso più 1 settimana
ExpiresByType image/x-icon "accesso più 1 settimana
ExpiresByType application/x-shockwave-flash "cambiamento più 1 settimana"
ExpiresByType image/svg+xml "accesso più 1 settimana
ExpiresByType image/vnd.microsoft.icon "accesso più 1 settimana
ExpiresByType application/font-woff "accesso più 1 settimana
ExpiresByType application/x-font-woff "accesso più 1 settimana
ExpiresByType application/vnd.ms-fontobject "accesso più 1 settimana
ExpiresByType font/opentype "accesso più 1 settimana
ExpiresByType font/ttf "accesso più 1 settimana
ExpiresByType font/otf "accesso più 1 settimana
ExpiresByType application/x-font-ttf "accesso più 1 settimana
ExpiresByType application/x-font-otf "accesso più 1 settimana
</IfModule><IfModule mod_headers.c>
<FilesMatch "\\.(ico|jpeg|jpg|svg|png|gif|css|gz|swf|eot|woff|otf|ttf)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
<FilesMatch "\\.(js)$">
Header set Cache-Control "max-age=604800, private"
</FilesMatch>
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi|htm|html)$">
Intestazione non impostata Cache-Control
</FilesMatch>
</IfModule><IfModule mod_headers.c>
Header set Vary "Accept-Encoding, X-HTTP-Method-Override, X-Forwarded-For, Remote-Address, X-Real-IP, X-Forwarded-Proto, X-Forwarded-Host, X-Forwarded-Port, X-Forwarded-Server"
</IfModule>Problemi vari:
- se le impostazioni predefinite a livello di server non sono adatte, le impostazioni attuali nel file htaccess avranno la priorità
- se aggiorni molto il tuo sito web, potresti essere infastidito dalla cache locale del tuo browser, disabilita temporaneamente o permanentemente la cache tramite il tuo file htaccess con questo:
<IfModule mod_expires.c>
ScadeAttivo Disattivato
</IfModule>Quando sei in modalità PHP-FPM con Nginx OPPURE desideri utilizzare Nginx
Il file .htaccess non ha più alcun effetto, c'è un'impostazione che puoi attivare utilizzando il plugin 'Nginx-Manager', sezione 'Ottimizzazioni contenuto', vedi impostazione: Expire / Cache control
Quest'ultima impostazione a livello di server corrisponde a questa:
# Media: immagini, icone, video, audio, HTC
posizione ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc|woff|woff2)$ {
scade 16d;
accesso_disconnessione;
add_header Cache-Control "public";
}#CSS e Javascript
posizione ~* \.(?:css|js)$ {
scade 16d;
add_header Cache-Control "public";
}
Se quest'ultima impostazione predefinita non ti soddisfa, come è il caso ad esempio del sito yoorshop.hosting, utilizziamo questo:# Media: immagini, icone, video, audio, HTC
posizione ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc|woff2)$ {
scade 7d;
accesso_disconnessione;
add_header Cache-Control "public";
add_header Access-Control-Allow-Origin "*";
}#CSS e Javascript
posizione ~* \.(?:css|js)$ {
scade 7d;
add_header Cache-Control "public";
add_header Access-Control-Allow-Origin "*";
}Esiste quindi la possibilità di personalizzarlo:
- disabilitare 'imposta intestazione scadenza' utilizzando il plugin 'Nginx-Manager', sezione 'Impostazioni applicazione'
- procedere come indicato in fondo al nostro articolo:
https://support.yoorshop.hosting/knowledgebase/3931/Come-configurare-un-sito-con-NGINX-PHP-FPM.htmlvedere: Personalizzazione della configurazione Nginx