То есть, сделать проксирование картинок с таким алгоритмом действий:
1. Запрос картинки
2. Nginx проверяет существует ли запрашиваемая картинка на сервере
3. Если да - отдаём её,
4. Если нет, то отдаём заглушку-картинку с кешированием, допустим, в 10 минут и вызываем lua скрипт, который скачивает картинку с определённого сайта, колдует над ней и складывает в директорию, чтобы через 10 минут отдать уже её.
Пока пытаюсь просто добиться хотя бы того, чтобы отдавалась заглушка и вызывался луа скрипт, как то так:
Конфиг nginx
......
location / {
# Проверим есть ли файл и если да - отдадим его
# если нет, вызовем @lua_call
try_files $uri @lua_call;
}
location @lua_call {
#rewrite ^ /default.jpg; - если убрать коммент не будет вызова луа-скрипта ниже
rewrite_by_lua_file /var/www/site/www/images/hello.lua;
# Отключим кэширование кода для разработки
lua_code_cache off;
}
Скрипт hello.lua работает, но смущается то, что выдача заглушки идёт в конце скрипта, после "хардкора"
hello.lua (пока просто создадим текстовый файл, дабы убедиться что скрипт вызывается)
local file = io.open("/var/www/site/www/images/test.txt", "w");
file:write("Hello World");
file:close();
return ngx.exec('/default.jpg');