例如,如果对像这样的图像发出请求…
/static/images/00f37ac6291bb6e8_150.jpeg
但150px的缩略图版本还没有生成,并返回一个404,我想让它尝试全尺寸的基本图像,将始终可用… …
/static/images/00f37ac6291bb6e8.jpeg
我该如何让nginx做到这一点?
这是我已经开始,但我遇到问题搞清楚正则expression式。 我也不知道这是否是完成这个的最好方法。
location /static/ { resolver 8.8.8.8; try_files $uri @redirect; proxy_pass https://s3.amazonaws.com/<buckets>$request_uri; } location @redirect { rewrite ^(.*)(?=_)(\.*)$ https://s3.amazonaws.com/<buckets>$1; }
这也是我正则expression式与正则expression式…我无法弄清楚如何抓取文件扩展名。

更新:
这是我最终做的,它运作良好!
location /static/images/ { resolver 8.8.8.8; proxy_intercept_errors on; proxy_pass https://s3.amazonaws.com/my-bucket$request_uri; error_page 400 401 402 403 404 @redirect; } location @redirect { rewrite ^(.*)\/(.*)(_)[0,1](.*)\.(.+)$ https://s3.amazonaws.com/my-bucket/images/$2.$5; }
我去了regex101.comtesting和这个正则expression式^(.*)\/(.*)(_)[0,1](.*)\.(.+)$ /static/images/00f37ac6291bb6e8_150.jpeg匹配的string/static/images/00f37ac6291bb6e8_150.jpeg 。 有了这场比赛$ 1 / $ 2. $ 5将成为更大的图像的path。