我在 Debian 上使用 Thin 和 nginx(0.7.6)在生产模式下运行我的 Rails 应用程序。它工作得很好,但我没有尝试实现 last-modified 标头,当我重新启动 nginx 时,客户端不再加载资产。
这是我的 nginx 配置:
upstream instance-name {
server unix:/var/run/thin/appname.0.sock;
server unix:/var/run/thin/appname.1.sock;
server unix:/var/run/thin/appname.2.sock;
server unix:/var/run/thin/appname.3.sock;
}
server {
listen 5678;
server_name appname;
access_log /root/rails/appname/log/access.log;
error_log /root/rails/appname/log/error.log;
root /root/rails/appname/public;
index index.html;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (-f $request_filename/index.html) {
rewrite (.*) $1/index.html break;
}
if (-f $request_filename.html) {
rewrite (.*) $1.html break;
}
if (!-f $request_filename) {
proxy_pass http://fibre-dox;
break;
}
}
location ~* \.(jpg|gif|png|css|js)$ {
if (-f $request_filename) {
expires max;
break;
}
}
}
给我带来麻烦的部分是这个:
location ~* \.(jpg|gif|png|css|js)$ {
if (-f $request_filename) {
expires max;
break;
}
}
我究竟做错了什么?我想使用最后修改的标题,这样客户端每次点击页面时都不会重新加载所有图片。