Я пытаюсь кешировать локальные статические ресурсы, используя NGINX.Однако активы не кэшируются NGINX.Активы обслуживаются правильно, но не записываются в каталог кэша.Более того, заголовки, связанные с кэшем на стороне сервера, не устанавливаются.
Ниже представлена моя конфигурация NGINX:
proxy_cache_path /mnt/ramdisk levels=1:2 keys_zone=my_cache:10m;
server {
listen 80;
server_name _;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
ssl_certificate <snip>;
ssl_certificate_key <snip>;
location /public/ {
autoindex on;
root <snip>;
# browser cache
expires 2d;
add_header Cache-Control "public";
# server-side caching
add_header X-Proxy-Cache $upstream_cache_status;
proxy_ignore_headers "Set-Cookie";
proxy_cache my_cache;
proxy_cache_min_uses 1;
proxy_cache_valid 200 60m;
}
}
При запросе ресурсов по этому пути я вижу эти заголовки:
$ curl -I https://<my-domain>/public/img/lightbulb-lg.optimized.jpeg
HTTP/2 200
server: nginx/1.10.3
date: Tue, 02 Oct 2018 19:42:09 GMT
content-type: image/jpeg
content-length: 254851
last-modified: Fri, 28 Sep 2018 17:36:17 GMT
etag: "5bae6691-3e383"
expires: Thu, 04 Oct 2018 19:42:09 GMT
cache-control: max-age=172800
cache-control: public
accept-ranges: bytes
Это правильно соответствует директивам expires
и add_header
, но обратите внимание на отсутствие заголовка X-Proxy-Cache
.
Кроме того, каталог /mnt/ramdisk
пуст.Его разрешения установлены на drwxrwxrwt 2 www-data root 40 Oct 2 19:36 ramdisk
, и я подтвердил, что могу писать в этот каталог.
Что происходит?