webp

Директива 'webp' включает преобразование JPEG/PNG изображений в формат WebP на лету для поддерживаемых клиентов.

Синтаксисwebp;
По умолчаниюnone
Контекстlocation
Аргументыnone

Описание

Директива 'webp' позволяет NGINX отдавать изображения в формате WebP на основе Accept header клиента. Когда клиент запрашивает изображение, если Accept header содержит 'image/webp', модуль запускает процесс конвертации JPEG или PNG изображений на лету. Это достигается вызовом инструмента 'cwebp' — утилиты командной строки, которая преобразует изображения в формат WebP, что выгодно из-за меньшего размера файлов и эффективного сжатия.

При запросе изображения в location, содержащем эту директиву, NGINX проверяет указанный Accept header. Если клиент поддерживает WebP, модуль пытается создать новую WebP-версию запрошенного JPEG или PNG файла. Для этого он форкает новый процесс, который выполняет 'cwebp' с соответствующими путями к файлам. Полученный результат затем возвращается клиенту, при условии успешной конвертации. Если конвертация не удалась, NGINX по умолчанию отдает оригинальный формат изображения, гарантируя, что клиент всегда получит корректный ответ с изображением.

При конфигурации директивы важно указывать корректный путь к инструменту 'cwebp' и обеспечить достаточные права доступа к соответствующим файловым изображениям. Также необходимо учитывать стратегии кеширования, так как конвертация изображений может увеличивать задержки. Внедрение решений для кеширования поможет смягчить влияние на производительность, связанное с обработкой на лету.

Пример конфига

location ~ '\.jpg$' {
    webp;
}

Убедитесь, что скрипт 'webp' находится в '/etc/nginx/' и является исполняемым.

Инструмент 'cwebp' должен быть правильно установлен и доступен для NGINX.

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

← Ко всем директивам