我正在尝试使用 Django 在 nginx 上设置浏览器缓存。我的 nginx 配置文件的静态文件的当前(工作)配置如下:
server {
listen 443 ssl;
server_name SERVER;
ssl_certificate /etc/ssl/CERT.pem;
ssl_certificate_key /etc/ssl/KEY.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
client_max_body_size 4G;
access_log /webapps/site/logs/nginx-access.log;
error_log /webapps/site/logs/nginx-error.log;
location /static/ {
alias /webapps/site/static/;
}
# other locations, etc.
}
我想设置一个规则,在浏览器中缓存图像等,以限制每页的请求数量(每页通常有 100 个左右的图像,但整个网站的图像都是相同的)。我尝试添加以下规则的一些变体:
location ~* \.(css|js|gif|jpe?g|png)$ {
expires 365d;
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
然而,当我这样做时,除了 404 错误之外什么也没有得到(尽管配置文件检查并重新加载时没有错误)。我相信这与别名有关,但我不确定如何修复它。
任何建议,将不胜感激!
你错过了root
图像位置块的指令。因此,nginx 将在默认位置查找文件,该位置因安装而异,并且由于您很可能没有将文件放置在那里,因此您将收到 404 Not Found 错误。
它适用于/static/
location 块,因为您定义了别名。但我怀疑别名应该是两者的根。如果是这样,那么尝试...
server {
listen 443 ssl;
server_name SERVER;
root /path/to/web/root/folder/;
[...]
# Your locations ... Most likely no need for alias in any.
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)