我在 Nginx 中有一组这种类型的规则:
location ~ ^/race/[a-z0-9\-_]*/session/[a-z0-9\-]*/topic/[a-z0-9\-_]*$ {
try_files $uri $uri/ /race/period/session/team/topic/index.html;
}
location /images/assets/ {
try_files /backup/data$uri /default_images/small_asset.png =404;
}
当文件存在于服务器上但现在数据位于远程位置(AWS - S3 + cloudfront)时,这些规则有效,我需要使用proxy_pass
,但想知道当我有多种选择时如何处理以下情况:
try_files $uri $uri/ /race/period/session/team/topic/index.html;
和
try_files /backup/data$uri /default_images/small_asset.png =404;
如何处理删除端点中的第一个路径,例如:
location /images/assets/ {
proxy_pass http://abc.cloudfront.net/backup/data
# but if I get a 404 here,how to fall back to:
proxy_pass http://abc.cloudfront.net/default_images/small_assets.png
}
有什么想法吗?没必要,我现在需要使用 Nginx,因为内容是远程托管的,对任何替代方案都持开放态度。