Nginx try_files 始终触发@proxy代理的问题求助
Nginx try_files 始终触发@proxy代理的问题求助
各位好,我最近配置Nginx时碰到个头疼的问题,折腾半天没搞定,来请大家帮忙分析下!
我的需求很明确:请求图片资源时,优先尝试从本地磁盘加载对应文件;如果磁盘上找不到这个文件,再去请求上游的代理服务获取。
我写的Nginx配置代码如下:
server { location ~ ^/(\d+)/(\d+)/(\d+)\.png$ { alias /mount/cache/c/$1/$2/$3.png; try_files $uri @proxy; add_header x-source file; } location @proxy { proxy_pass http://127.0.0.1:28000; add_header x-source proxy; } }
现在的问题是:不管本地磁盘上有没有对应的图片文件,请求都会触发@proxy代理,返回的x-source header始终是proxy。如果我把try_files $uri @proxy;这一行注释掉,本地存在的文件倒是能正常从磁盘加载,但这时候文件不存在的话,就完全没办法走代理了,根本达不到我想要的“先本地后代理”的效果。
有没有大佬能帮我看看问题出在哪?该怎么修改配置才能实现我的需求呀?
备注:内容来源于stack exchange,提问作者hyperknot
相关产品推荐
相关产品推荐

