Oktatóanyagok > Hogyan lehet optimalizálni az Apache statikus fájljainak gyorsítótárazását az Ubuntu 18.04-en?

Hogyan lehet optimalizálni az Apache statikus fájljainak gyorsítótárazását az Ubuntu 18.04-en?

Közzétéve: 16 január 2020

Apache Cache

Ez az útmutató bemutatja, hogyan kell helyesen konfigurálni a fejléc lejárati beállításait az Apache segítségével, optimalizálva a webszerver teljesítményét statikus fájlok, például képek, CSS vagy JavaScript fájlok kiszolgálásakor.

A kiszolgálón sok sávszélességet tárolnak a fájlok minimális dátumának megadásával. Ennek eredményeként a kliens böngésző gyorsítótárának használatával a hosztolt webhelyek gyorsabban betöltődnek.

Először csatlakozzon a szerverhez SSH kapcsolaton keresztül. Ha még nem tette meg, akkor ajánlott átböngésznie a Hogyan javítható az SSH biztonság az Ubuntu 18.04-en? útmutatónkat a folyamat megkezdése előtt. Helyi szerver esetén folytassa a következő lépéssel, és nyissa meg a szerver terminált.

A szükséges modulok engedélyezése

A szükséges Fejlécek küldésének engedélyezéséhez először engedélyezze a kapcsolódó Apache modult:

$ sudo a2enmod expires

Ezután indítsa újra a szolgáltatást:

$ sudo service apache2 restart 

Modul konfigurációja

A modul konfigurációja az alábbiak szerint illeszthető be:

  • Apache konfigurációban: az összes Apache által ellenőrzött webhely (virtuális és nem virtuális gazdagépek) örökli

  • Virtuális gazdagép-tárolóban

  • A <Directory> irányelvben vagy .htaccess fájlban

A következő példában az alapértelmezett helykonfigurációba kerül beillesztésre:

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

Ezután adja hozzá a következő konfigurációt:

<IfModule mod_expires.c>

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

                      ExpiresActive On

                      ExpiresDefault "access plus 1 week"

          </FilesMatch>

</IfModule>

A FilesMatch irányelv révén meghatározzuk, mely fájlokat kell az ügyfél böngészőjének megőriznie (ebben az esetben css, jpg, png, gif és js). Míg az ExpiresDefault segítségével megadjuk, hogy meddig kell őket (ebben a példában egy hét) megőrizni.

A módosítások alkalmazásához indítsa újra az Apache-t:

$ sudo service apache2 restart 

A FilesMatch és az ExpiresDefault metódus mellett az ExpiresByType használható a fejléc lejáratának beállítására minden fájltípushoz, például:

<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>

Ennek a módszernek az alkalmazásával részletesebb vezérlés érhető el a gyorsítótár időtartamáról, és az Ajax adatok gyorsítótárazása a mime típusú alkalmazás / javascript beillesztése nélkül érhető el.

Mindkét irányelv esetében a gyorsítótár időtartamának megadására szolgáló szintaxis megegyezik, vagyis:

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

Az alapérték lehet:

  • access: kliens kérés dátuma

  • modification: a fájl módosítási dátuma

Míg a típusnak a következő értékei lehetnek:

  • years: évek

  • months: hónapok

  • weeks: hetek

  • days: napok

  • hours: órák

  • minutes: percek

  • seconds: másodpercek

Néhány példa a konfigurációra:

# 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"

Ne feledje, hogy ha meg kell változtatnia egy gyorsítótárazott fájl tartalmát, akkor azt a kliensek nem töltik le, amíg a gyorsítótárazás ideje le nem jár. Ez meghibásodásokat okozhat webhelyein.

Bár a klienseket nem lehet arra kényszeríteni, hogy figyelmen kívül hagyják a korábban mentett gyorsítótárat, a probléma elkerülésére többféle technika is alkalmazható.

Gyakran használt módszer az éppen módosított fájl átnevezése (például: style.css-ről style-v2.css-re), vagy a hivatkozások módosítása verziószám hozzáadásával, például:

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

a következőre:

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