GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So optimieren Sie das Cachen statischer Apache-Dateien unter Ubuntu 18.04

Diese Anleitung zeigt, wie Sie die Header-Ablaufeinstellungen mit Apache korrekt konfigurieren und die Leistung des Webservers beim Bereitstellen statischer Dateien wie Bilder, CSS- oder JavaScript-Dateien optimieren.

Eine Menge Bandbreite auf Ihrem Server wird eingespart, indem Sie ein Mindestdatum für das Zwischenspeichern von Dateien festlegen. Infolgedessen werden gehostete Websites durch die Verwendung des Client-Browser-Cache schneller geladen.

Verbinden Sie sich zunächst über eine SSH-Verbindung mit Ihrem Server. Wenn Sie dies noch nicht getan haben, wird empfohlen, unseren Leitfaden zu befolgen, um sich sicher mit SSH zu verbinden. Im Falle eines lokalen Servers gehen Sie zum nächsten Schritt und öffnen Sie das Terminal Ihres Servers.

Aktivieren der erforderlichen Module

Um das Senden der notwendigen Header zu ermöglichen, aktivieren Sie zuerst das zugehörige Apache-Modul:

$ sudo a2enmod expires

Und dann den Dienst neu starten:

$ sudo service apache2 restart 

Modulkonfiguration

Die Modulkonfiguration kann wie folgt eingefügt werden:

  • In der Apache-Konfiguration:wird von allen Sites geerbt, die von Apache kontrolliert werden (virtuelle und nicht-virtuelle Hosts)

  • In einem virtuellen Host-Container

  • Innerhalb der -Direktive oder .htaccess-Datei

Im folgenden Beispiel wird es in die Standard-Site-Konfiguration eingefügt:

$ sudo vim /etc/apache2/sites-available/000-default.conf

Fügen Sie dann die folgende Konfiguration hinzu:

<IfModule mod_expires.c>

          <FilesMatch "\.(jpe?g|png|gif|js|css)$">

                      ExpiresActive On

                      ExpiresDefault "access plus 1 week"

          </FilesMatch>

</IfModule>

Durch die FilesMatch-Direktive wird festgelegt, welche Dateien vom Client-Browser aufbewahrt werden sollen (in diesem Fall css, jpg, png, gif und js), durch ExpiresDefault jedoch, wie lange sie aufbewahrt werden sollen (in diesem Beispiel eine Woche) für angegeben.

Um die Änderungen zu übernehmen, starten Sie Apache neu:

$ sudo service apache2 restart 

Zusätzlich zu den Methoden FilesMatch und ExpiresDefault kann ExpiresByType verwendet werden, um den Header Expires für jeden Dateityp festzulegen, zum Beispiel:

<IfModule mod_expires.c>

 ExpiresActive on
 ExpiresByType image/jpg "access plus 60 days"
 ExpiresByType image/png "access plus 60 days"
 ExpiresByType image/gif "access plus 60 days"
 ExpiresByType image/jpeg "access plus 60 days"
 ExpiresByType text/css "access plus 1 days"
 ExpiresByType image/x-icon "access plus 1 month"
 ExpiresByType application/pdf "access plus 1 month"
 ExpiresByType text/javascript "access plus 1 week"

</IfModule>

Durch die Verwendung dieser Methode kann eine genauere Kontrolle über die Dauer des Caches erreicht werden und das Caching von Ajax-Daten kann erreicht werden, indem die mime-artige Anwendung/Javascript nicht eingefügt wird.

Für beide Direktiven ist die Syntax zur Angabe der Cache-Dauer gleich, also:

“[base] plus [valore] [tipo] [valore] [tipo] [valore] [tipo] …”

Der Basiswert kann sein:

  • Zugriff:Datum der Kundenanfrage

  • Änderung:Änderungsdatum der Datei

Während der Typ folgende Werte haben kann:

  • Jahre:Jahre

  • Monate:Monate

  • Wochen:Wochen

  • Tage:Tage

  • Stunden:Stunden

  • Minuten:Minuten

  • Sekunden:Sekunden

Einige Konfigurationsbeispiele sind:

# One year cache expiry 
ExpiresByType image/jpeg "access plus 1 year"

#Furthermore, more than one unit of measurement in sequence can be added. For example:

# Set 1-month, 15- day and 2-hour expiry
ExpiresByType text/html "access plus 1 month 15 days 2 hours"

# Cache expiry from the file modification date more than 5 hours and 3 minutes 
ExpiresByType image/gif "modification plus 5 hours 3 minutes"

Bitte denken Sie daran, dass, wenn Sie den Inhalt einer zwischengespeicherten Datei ändern müssen, letztere nicht von den Clients heruntergeladen wird, bis die Cache-Zeit abgelaufen ist. Dies könnte zu Fehlfunktionen auf Ihren Websites führen.

Obwohl Clients nicht gezwungen werden können, den zuvor gespeicherten Cache zu ignorieren, können verschiedene Techniken verwendet werden, um dieses Problem zu vermeiden.

Eine häufig angewandte Methode besteht darin, die gerade geänderte Datei umzubenennen (z. B. von style.css in style-v2.css) oder die Links zu ändern, indem eine Versionsnummer hinzugefügt wird, z. B. von:

<script src="https://www.domain.com/js/myScript1.js"></script>

auf Folgendes:

<script src="https://www.domain.com/js/myScript1.js?v=3.1"></script>

Linux
  1. Wie installiere ich Apache auf Ubuntu?

  2. VIM:wie man unter Ubuntu zur genauen Zeile geht

  3. Dateizugriffszeit wird in Ubuntu 12.04 nicht aktualisiert

  4. Wie kann der Zugriff auf eine Datei blockiert werden, die von Tomcat bereitgestellt wird?

  5. So installieren Sie Apache Cassandra unter Ubuntu 20.04

So richten Sie Apache Virtual Hosts unter Ubuntu 18.04 ein

So extrahieren Sie eine RAR-Datei unter Ubuntu

So fügen Sie eine Auslagerungsdatei unter Ubuntu 20.04 hinzu

So installieren Sie Apache unter Ubuntu 20.04

So installieren Sie Apache Subversion unter Ubuntu 18.04

So installieren Sie Apache Tomcat unter Ubuntu 18.04