Nginx Кеширование

В секции локации прописать include cache; Затем создать подключение

/etc/nginx/conf.d/cache.conf

#fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=nginxcache:10m inactive=5m max_size=500m;
 
fastcgi_cache_path /var/cache/nginx levels= keys_zone=nginxcache:1024m max_size=20480m inactive=7d;
 
#fastcgi_cache_path /var/cache/nginx levels= keys_zone=nginxcache:50m;
#perl_set $rand 'sub { return int rand 10 }';
  • levels - уровень создания папок
  • keys_zone
  • inactive

/etc/nginx/cache

   # Необходимо для передачи cookie в соответствующие переменные,
   # например cookie с именем phpsessid будет находится в переменной $cookie_phpsessid
   # fastcgi_pass_header Cookie;
    fastcgi_pass_header "Set-Cookie";
 
    #fastcgi_cache_methods GET HEAD;
 
    # Не берется из кеша
    fastcgi_cache_bypass $no_cache;
 
    # Не сохраняется в кеш
    fastcgi_no_cache $cookie_nocache $no_cache;
 
    #add_header X-Micro-Cache $upstream_cache_status;
    #expires epoch;
 
    fastcgi_cache nginxcache;
    fastcgi_cache_valid 200 301 302 304 1m;
 
    # Таким образом можно закешировать любые ответы
    #fastcgi_cache_valid any 10s;
 
    # Задаем ключ кеша
    # Доступные переменные:
    #   $server_addr
    #   $server_port
    #   $request_method
    #   $http_if_modified_since
    #   $http_if_none_match
    #   $host
    #   $request_uri
    #   $cookie_phpsessid $cookie_
    #   $http_cookie
    #   $session_id
    fastcgi_cache_key "$server_addr : $server_port / $request_uri $http_cookie $request_method $session_id";
 
    # Гарантируем, что разные пользователи не получат одну и ту же сессионную Cookie.
    fastcgi_hide_header "Set-Cookie";
 
    # Заставляем nginx кэшировать страницу в любом случае, независимо от
    # заголовков кэширования, выставляемых в PHP.
    #fastcgi_ignore_headers "Cache-Control" "Expires";
    fastcgi_ignore_headers "Cache-Control" "Expires" "Set-Cookie";
 
    # Заставляем браузер каждый раз перезагружать страницу (для ротации).
    fastcgi_hide_header "Cache-Control";
    add_header Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";
    fastcgi_hide_header "Pragma";
    add_header Pragma "no-cache";
 
    # Выдаем всегда свежий Last-Modified.
    expires -1; # Внимание!!! Эта строка expires необходима!
    add_header Last-Modified $sent_http_Expires;
 
    # Используем вариант из кеша (даже если он устарел) в случае ошибки
    fastcgi_cache_use_stale updating error timeout invalid_header http_500;