Как установить модуль image_filter на NGINX с открытым исходным кодом?

Я пытаюсь разрешить nginx обрабатывать мои статические файлы на моем веб-сервере. Для этого я хочу изменить размер изображений. Я нашел модуль ngx_http_image_filter_module, который мне кажется именно таким. Но я не могу заставить его работать.

В идеале мне нужно решение для экосистемы докеров. В официальномnginx изображение, я думаю, что библиотека упакована в /etc/nginx/modules/ngx_http_image_filter_module.so и я слышал о load_module линия с:

load_module "modules/ngx_http_image_filter_module.so";

Но у меня это не работает. Я думаю, это только для пользователей nginx Plus, и я использую только nginx с открытым исходным кодом, верно?

Итак, похоже, мне нужно собрать nginx вручную с некоторыми аргументами, но я не могу найти руководство о том, как это сделать четко. Я попытался повозиться с этим Dockerfile, но ничего не могу заставить работать.

Я уже потратил день на работу над этой проблемой, и это действительно расстраивает, тем более что, похоже, почти нет документации для того, что я ожидал бы быть очень полезным. Может, на бесплатном nginx это просто невозможно? Я совсем потерялся...

1 ответ

Поскольку никто не ответил, я отправляю свою работу.

Я использую nginx над веб-сервером NodeJS + express. В моем решении имя файла форматируется в зависимости от требуемого изменения размера, напримерabc-123-def_w100_h200.jpg. Если файл доступен на диске, nginx просто обслуживает его. Если он не существует, запрос передается на сервер узла. Там я проверяю, существует ли исходный образ, модифицирую его с помощью Jimp и сохраняю на диске. Затем экспресс служит измененное изображение.

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

Другие вопросы по тегам