我去了互联网,把所有可能的设置都用于缓存,但谷歌页面结束的所有相同的见解写道,我没有缓存这些文件如何解决这个问题?
我的缓存设置“nano /etc/nginx/nginx.conf”
proxy_temp_path /var/nginx/proxy_temp;
add_header X-Cache-Status $upstream_cache_status;
proxy_cache_path /tmp/nginx/cache levels=1:2 keys_zone=one:100m;
proxy_cache one;
proxy_cache_valid any 30d;
proxy_cache_key $scheme$proxy_host$request_uri$cookie_US;
我的服务器conf“nano / etc / nginx / sites-enabled / theband”
location ~* ^(?!/media).*.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
expires 365d;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
access_log off;
}
location ~* ^(?!/static).*.(?:css|js|html)$ {
expires 365d;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
access_log off;
}
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_cache one;
proxy_cache_min_uses 1;
proxy_cache_use_stale error timeout;
答案 0 :(得分:1)
我通过移动服务器块的过期时间来解决此问题
server {
expires 35d;
...
}
到父http块
http {
expires 35d;
...
}
“上下文:http,服务器,位置,如果在位置”表明它可以驻留在这些块中。不知道为什么我的服务器或位置无法正常工作。 http://nginx.org/en/docs/http/ngx_http_headers_module.html?&_ga=2.49684582.1104146524.1536596059-1026560835.1535666041#expires
答案 1 :(得分:0)
"到期35d;"此行需要从您定义的位置删除,以创建文件的存储。
从这里开始:
location ~* ^(?!/media).*.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
root /tmp/nginx/trash/trash_media;
expires 35d; # REMOVE THISSSSSSSS
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
access_log off;
}
到这里:
server {
listen 80;
server_name myip;
expires 35d;
client_max_body_size 4G;
它会起作用,尽管在所有绝对的例子中,你都没有 需要把存储时间放在那里!!!!!!
也不要忘记允许从网络接受数据并写入并从本地存储中读取
sudo chown www-data /tmp/nginx/proxy_temp
sudo chmod 700 /tmp/nginx/proxy_temp
sudo chown www-data /tmp/nginx/cache
sudo chmod 700 /tmp/nginx/cache
sudo chown www-data /tmp/nginx/cache2
sudo chmod 700 /tmp/nginx/cache2