Интеграции
Модули CDN для CMS
На обычном хостинге подключите WordPress, OpenCart или ocStore через модуль CMS. Доступ к nginx не нужен: браузер получает готовый CDN URL. Ниже описан отдельный вариант с собственным reverse proxy.
Reverse proxy и Bitrix
Для существующих URL /upload/... используйте alias профиля и внешний nginx. Пример предполагает, что nginx работает на том же хосте, а zorka опубликована на 127.0.0.1:8088:
location /upload/ {
proxy_pass http://127.0.0.1:8088;
proxy_set_header Host $host;
proxy_set_header Accept $http_accept;
proxy_set_header X-Request-ID $request_id;
}
В proxy_pass намеренно нет завершающего /: исходный путь /upload/... сохраняется. В контейнерной сети вместо loopback используйте адрес сервиса. Не публикуйте admin listener этим маршрутом.
Перед заменой production-маршрута проверьте временный экземпляр, читаемость исходников и соответствие UPLOAD_DIR реальному каталогу Bitrix. При откате возвращайте прежний маршрут прокси.
HTML и адаптивные изображения
<img src="/upload/product.jpg"
width="1200" height="800"
loading="lazy"
alt="Описание товара" />
Ширина и высота в HTML резервируют место в макете, но не изменяют файл на сервере. Для srcset нужны отдельные исходники нужных размеров или отдельный инструмент изменения размера.
Для изображения первого экрана не включайте loading="lazy" автоматически: оцените его влияние на LCP.
Next.js
Выберите, какой слой отвечает за изображения. Если выдачу формата и сжатие выполняет zorka, можно использовать обычный img или Image с unoptimized и заранее известными размерами:
import Image from 'next/image';
<Image
src="/upload/product.jpg"
alt="Описание товара"
width={1200}
height={800}
unoptimized
/>
Маршрут /upload/ должен обслуживаться прокси zorka. Loader, который добавляет w, h или q к URL, не соответствует текущему API zorka. Если нужен resize средствами Next.js, учитывайте дополнительный этап обработки и проверяйте итоговое качество.
Проверка подключения
- Убедитесь, что ответ приходит от нужного профиля по
X-Image-Profile. - Проверьте
Content-Type,Vary: Acceptи повторные попадания в кэш. - Сравните вес, визуальное качество и LCP на одних и тех же страницах.
- Проверьте ошибки источника и возможность вернуть прежний маршрут.