Я использую nginx в качестве обратного прокси-сервера для своих приложений Node.js, которые работают на локальном хосте: 3000. И сам nginx, и мое приложение — это два отдельных докер-контейнера. (Отдельно, потому что позже я планирую добавить к нему больше приложений.)
В моем контейнере приложений у меня есть несколько .webp
альтернативные изображения. Например.
$ лс
/приложение/активы/img/image.jpeg
/приложение/активы/img/image.jpeg.webp
/app/assets/img/other.jpeg
я пытался использовать try_files
с nginx, но, насколько я знаю, это невозможно, потому что try_files не «видит» мои файлы внутри другого контейнера докеров, если они не используют общий том. Что они не могут. Контейнер приложения создается где-то еще со всем, что находится внутри.
Что у меня есть прямо сейчас это:
вышестоящее приложение {
локальный хост сервера: 3000;
}
[...]
расположение ~* .+\.(jpg|jpeg|svg|png)$ {
proxy_pass http://app$uri$webp_suffix;
}
[...]
место расположения / {
прокси_пасс http://приложение;
}
Это на самом деле работает. Клиент запрашивает .jpg
образ и получает .jpg .webp
(потому что он может справиться с этим). Проблема в том, что он всегда получает .jpg .webp
. Что мне нужно, так это проверить, доступен ли запрошенный файл в моем приложении.
Так может что-то подобное? Но это не работает :-(
расположение ~* .+\.(jpg|jpeg|svg|png)$ {
если (-f http://app$uri$webp_suffix) {
proxy_pass http://app$uri$webp_suffix;
}
прокси_пароль http://app$uri;
}