Настроих MEAN стек (Mongo + Express + Angular + nodejs) и трябваше да ускоря зареждането на приложението с кеширане.

Кеширането е може би едно от най-важните неща, които трябва да направите, за да подобрите представянето и SEO. Моите приложения се захранват с Nginx, защото е бързо и лесно, така че започнах да търся начин да инсталирам кеш с nginx.

Задънената улица

Първото нещо, което ще намерите, ако търсите кеширане на статични файлове с nginx е:

location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
    expires 30d;
    add_header Vary Accept-Encoding;
    access_log off;
}

Просто добавете тази част от кода ПРЕДИ всеки location в конфигурацията на вашия сървър и трябва да работи.

В моя случай не стана.

Истинското — по-сложно — решение

Вместо да използваме expires, сякаш ще го използваме с map.

Ето как го направих:

Отворете вашата конфигурация на сървъра и добавете върху нея:

# Expires map
map $sent_http_content_type $expires {
    default                    off;
    text/html                  epoch;
    text/css                   max;
    application/javascript     7d;
    ~image/                    max;
}

По този начин имате много прецизен начин да кеширате статични файлове, просто предоставете MIMEType и дължината, която искате да ги кеширате, и сте добре!

Nginx е много мощен за настройка на дължината на кеширащите файлове:

  • off е за контролен хедър без кеширане — всичко, което не искате да се кешира
  • epoch е специална стойност, тя конкретно изисква от браузъра винаги да пита дали самият уебсайт е актуален
  • max задайте кеша на максимума, който браузърът може да обработва (с Firefox е 315360000 seconds )
  • 7d е персонализирана стойност, това означава 7 дни почивка от курса, можете да използвате каквото искате m е за минути, M за месеци… Ето документа за nginx време

След това във вашия сървърен блок:

server {
 listen 80;
 expires $expires;
…

И след това, разбира се, рестартирайте вашия уеб сървър:

sudo systemctl restart nginx

Тествайте го!

Отворете уебсайта си, проверете раздела мрежа в конзолата за програмисти и трябва да видите нещо като:

Двете важни заглавки тук са:

  • Cache-Control : Тук можем да видим 7 дни (604800 сек.)
  • Expires е датата, когато моят браузър ще поиска отново от сървъра нова версия на файловете. В противен случай ще използва този, съхранен в неговия кеш.

Можете също така да проверите времето за зареждане, трябва да е много по-добре!