Я не могу сказать, правильно ли кеширует nginx. Я запускаю приложение стека MEAN с nginx впереди в качестве (надеюсь) кэширующего обратного прокси.
Если я использую сетевую вкладку chrome dev tools, у нее есть заголовок ответа: X-Powered-By Express.
Если я сделаю curl -I mysite.com, будет указано, что 302 временно перемещено, а Server: nginx / version. Я не понимаю, обслуживает ли запрос экспресс или nginx.
Я взглянул на консоль своего сервера, и она дает 304 на каждый запрос.
Вот моя конфигурация в sites-available / default. По умолчанию используется nginx.config.
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=STATIC:10m
inactive=24h max_size=1g;
server {
listen 80 default_server;
# Make site accessible from http://localhost/
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_cache STATIC;
proxy_cache_valid 200 1d;
add_header cache_status $upstream_cache_status;
}
}
Заголовок cache_status не отображается с ударами, промахами или чем-то еще.
Смотреть в
/data/nginx/cache
чтобы увидеть, есть ли там файлы.
У меня есть руководство по Nginx, которое включает кеширование Вот. Я не думаю, что у вас есть все необходимые настройки, если только некоторые не имеют значений по умолчанию, например
fastcgi_cache_key "$scheme$request_method$host$request_uri";
Внутри вашего местоположения вам может понадобиться это, если заголовки не настроены соответствующим образом приложением, которое вы кешируете.
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
Прочтите руководство, оно дает больше советов. В предыдущих частях учебника показано, как собрать Nginx из исходного кода, что позволяет выполнять такие операции, как компиляция в mod_headers, что удобно для добавления заголовков для отладки.