Всем добрый день.
Возникла одна задачка, над которой сижу уже несколько дней.
Решили взвалить обработку фотографий на nginx.
Сейчас картинки выдаются следующим образом:
<img src="http://site.net/news/image.php?&type=whp&width=152&height=101&id=6924&quality=100">;
То есть пыхтит над этим апач: выбор картинки из базы, ресайз и прочее.
Задача - сделать это все средствами nginx, причем не изменяя ссылки.
Ковыряю ngx_http_image_filter_module.c.
Как я вижу решение: где-то на начальной стадии обработки запроса запрашиваем из базы путь к картике и подменяем ngx_http_request, как будто запрашивается картинка, а не image.php, а дальше модуль уже продолжает работу, как обычно.
Можно, конечно, все сделать, как говорится, в лоб, но не хочется нарушать целостность модуля, и хочется, чтобы он не выполнял лишнюю работу.
Отсюда два вопроса:
1. В какой функции лучше делать запросы к базе и подмену request'а, и как правильно подменять, чтобы не нарушить логику всей программы? ( мне так кажется, где-то в функции ngx_http_image_header_filter? )
2. Как правильно передать дополнительные параметры в директиву image_filter? Я окончательно запутался и не могу понять последовательность обработки параметров от прописывания их в конфиге до функции ngx_http_image_resize, например.