как настроить кеш nginx
Моя установка nginx находится в / etc / nginx, и я создал файл cache.conf в /etc/nginx/conf.d со следующим содержимым:
proxy_temp_path /tmp/nginx_temp;
proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache_zone1:500m inactive=10d max_size=1g;
proxy_connect_timeout 5;
proxy_read_timeout 60;
proxy_send_timeout 10;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_404;
Настройте следующее в /etc/nginx/nginx.conf:
server {
listen 80;
server_name xxx;
root /data/webs;
server_tokens off;
location ~ .*\.(gif|jpg|png|html|htm|css|js|ico|swf|pdf|wof|woff2|svg)$ {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080;
proxy_buffering on;
proxy_cache cache_zone1;
proxy_cache_key "$host$request_uri";
add_header Cache "$upstream_cache_status";
proxy_cache_valid 200 304 301 302 100d;
proxy_cache_valid 404 1m;
proxy_cache_valid any 5m;
}
}
server{
listen 8080;
server_name xxx;
charset utf-8;
server_tokens off;
root /data/webs;
location / {
root /data/webs;
index index.html index.html;
}
}
Хотя возвращенный статус показывает, что кеш был прочитан, все равно требуется некоторое время для загрузки при каждом посещении, но после загрузки и обновления содержимое отображается немедленно. Другая проблема заключается в том, что после обновления моего html-файла я также удаляю кеш файл в конфигурации / tmp / nginx_cache, но содержимое html остается неизменным.