我在反向代理模式下使用 nginx。在我的服务器部分,我有此代码来设置静态文件的过期和缓存控制。
location ~* ^.+\.(css|js|png|gif)$ {
access_log off;
expires max;
add_header Cache-Control public;
if (!-f $request_filename) {
proxy_pass http://localhost:82;
}
}
这是很明显造成了问题。有人能帮我修改这个代码以使用try_files
或吗rewrite
?
答案1
至少有两种技术。
错误页面
在引入try_files
指令之前,常见的方法是拦截错误代码 404 并使用命名位置处理请求,例如
location ~* \.(css|js|png|gif)$ {
access_log off;
expires max;
add_header Cache-Control public;
error_page 404 = @upstream;
}
try_files
等效使用try_files
如下
location ~* \.(css|js|png|gif)$ {
access_log off;
expires max;
add_header Cache-Control public;
try_files $uri @upstream;
}
并且两种情况下的命名位置是相同的:
location @upstream {
proxy_pass http://localhost:82;
}