Рейтинг:0

nginx как заменить try_files на proxy_pass с несколькими путями

флаг us

У меня есть набор правил в 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;
}

местоположение /изображения/активы/ {
   try_files /backup/data$uri /default_images/small_asset.png = 404;
}

Эти правила работают, когда файлы существуют на сервере, но теперь данные находятся в удаленном месте (AWS — S3 + облачный фронт), мне нужно использовать proxy_pass, но интересно, как поступать в случаях, когда у меня есть несколько вариантов, например:

try_files $uri $uri/ /race/period/session/team/topic/index.html;

И

try_files /backup/data$uri /default_images/small_asset.png = 404;

Как обрабатывать первый путь в конечной точке удаления, например:

местоположение /изображения/активы/ {
   прокси_пасс http://abc.cloudfront.net/backup/data 
   # но если я получу 404 здесь, как вернуться к: 
   прокси_пасс http://abc.cloudfront.net/default_images/small_assets.png
}

Любые идеи? нет необходимости, мне нужно использовать Nginx теперь, когда контент размещается удаленно, открыты для любых альтернатив.

Richard Smith avatar
флаг jp
Чтобы откатиться на 404, вам нужно будет использовать `error_page`. См. [этот документ](http://nginx.org/en/docs/http/ngx_http_core_module.html#error_page).
флаг us
есть идеи, как работать с регулярным выражением при использовании proxy_pass?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.