Локальное кэширование работает нормально, однако попытка кэшировать файловый сервер с помощью Azure хранилища BLOB-объектов не работает.
При каждом запросе подпись изменяется и не возвращает никаких заголовков кэширования. Я думаю, что из-за этой подписи в конце? Кто-нибудь понял, как это превзойти?
https://accountname.blob.core.windows.net/static/assets/js/jquery331.min.js?se=2020-02-10T15%3A06%3A35Z&sp=r&sv=2019-09-28&sr=b&sig=<Signature>
Ниже мой nginx конфиг. Это в основном основано на этом = https://serversforhackers.com/c/nginx-caching
upstream app {
server web:8000;
}
proxy_cache_path ./cache keys_zone=one:10m loader_threshold=300 loader_files=200;
proxy_cache_key "$scheme$request_method$host$request_uri";
# Expires map
map $sent_http_content_type $expires {
default off;
text/css max;
application/javascript max;
~image/ max;
}
server {
include mime.types;
listen 80;
listen [::]:80;
root /usr/src/application/;
index /usr/src/application/main/;
gzip on;
gzip_comp_level 2;
gzip_http_version 1.0;
gzip_proxied any;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript script text/script;
gzip_disable "MSIE [1-6].(?!.*SV1)";
gzip_vary on;
location / {
proxy_pass http://app;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
location /staticfiles/ {
proxy_cache one;
proxy_buffering on;
add_header X-Proxy-Cache $upstream_cache_status;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Authorization '';
proxy_set_header Host https://accountname.blob.core.windows.net/static;
proxy_pass https://accountname.blob.core.windows.net;
}
location /media/ {
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Authorization '';
proxy_set_header Host https://accountname.blob.core.windows.net/media;
proxy_pass https://accountname.blob.core.windows.net;
}
# cache.appcache, your document html and data
location ~* \.(?:manifest|appcache|html?|xml|json)$ {
expires -1;
}
# Feed
location ~* \.(?:rss|atom)$ {
expires 1h;
add_header Cache-Control "public";
}
# Media: images, icons, video, audio, HTC
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
expires 1M;
access_log off;
add_header Cache-Control "public";
}
# CSS and Javascript
location ~* \.(?:css|js)$ {
expires 1y;
access_log off;
add_header Cache-Control "public";
}
location /media/ {
alias /usr/src/application/main/media;
}
proxy_connect_timeout 300s;
proxy_read_timeout 300s;
proxy_next_upstream error timeout http_502;
location /index/ {
alias /usr/src/application/main/;
}
}