История изменений
Исправление AndreyKl, (текущая версия) :
Я уже плохо помню детали, но в целом идея (эффеткивной) настройки такая:
- у тебя есть nginx
- за ним стоит нода
- на nginx приходит запрос на картинку, например, /api/image/22.png
- этот запрос nginx должен передать ноде
- нода _не_ _должна_ отдавать картинку. должна проверить права на файл и передать nginx-у ответ в виде хидера с редиректом (модуль internal кажется). Если права доступа есть - то редирект на то метсо где лежит файл, а иначе на страничку с сообщением об ошибке.
- nginx принимает редирект от ноды, понимает его и отдаёт браузеру нужную информацию. при этом урл в браузере клиента остаётся /api/image/22.png (т.е. не меняется всю дорогу).
вот тут нашёл инструкцию, вроде то что нужно
https://shortcut.com/developer-how-to/how-to-use-internal-redirects-in-nginx
(да, хидер должен быть не обычный редирект, а X-Accel-Redirect, тогда nginx не передаёт его браузеру а обрабатывает сам. вроде так, но я уже наверное лет 7 не брался за это, поэтому за точность не ручаюсь).
Исправление AndreyKl, :
Я уже плохо помню детали, но в целом идея (эффеткивной) настройки такая:
- у тебя есть nginx
- за ним стоит нода
- на nginx приходит запрос на картинку, например, /api/image/22.png
- этот запрос nginx должен передать ноде
- нода _не_ _должна_ отдавать картинку. должна проверить права на файл и передать nginx-у ответ в виде хидера с редиректом (модуль internal кажется). Если права доступа есть - то редирект на то метсо где лежит файл, а иначе на страничку с сообщением об ошибке.
- nginx принимает редирект от ноды, понимает его и отдаёт браузеру нужную информацию. при этом урл в браузере клиента остаётся /api/image/22.png (т.е. не меняется всю дорогу).
вот тут нашёл инструкцию, вроде то что нужно
https://shortcut.com/developer-how-to/how-to-use-internal-redirects-in-nginx
(да, хидер должен быть не обычный редирект, а X-Accel-Redirect, тогда nginx не передаёт его браузеру а обрабатывает сам. вроде так).
Исходная версия AndreyKl, :
Я уже плохо помню детали, но в целом идея (эффеткивной) настройки такая:
- у тебя есть nginx
- за ним стоит нода
- на nginx приходит запрос на картинку, например, /api/image/22.png
- этот запрос nginx должен передать ноде
- нода _не_ _должна_ отдавать картинку. должна проверить права на файл и передать nginx-у ответ в виде хидера с редиректом (модуль internal кажется). Если права доступа есть - то редирект на то метсо где лежит файл, а иначе на страничку с сообщением об ошибке.
- nginx принимает редирект от ноды, понимает его и отдаёт браузеру нужную информацию. при этом урл в браузере клиента остаётся /api/image/22.png (т.е. не меняется всю дорогу).
вот тут нашёл инструкцию, вроде то что нужно
https://shortcut.com/developer-how-to/how-to-use-internal-redirects-in-nginx