Как установить модуль image_filter на NGINX Open Source? - PullRequest
0 голосов
/ 02 августа 2020

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

В идеале, мне нужно решение для экосистемы docker. В официальном образе 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 Ответ

0 голосов
/ 03 августа 2020

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...