Cloudflare Worker для прокси-кеширования изображений Bing с постоянным кешированием.
- Прокси-запросы: Перенаправляет запросы к Bing Thumbnail API
- Постоянное кеширование: Кеширует изображения навсегда в Cloudflare Cache
- Оптимизация: Отдает изображения с edge-серверов Cloudflare
- Автоматическое преобразование: Интегрируется с основным сайтом
- WebP/AVIF конвертация: Автоматическая конвертация в современные форматы с fallback на оригинал
- Умное определение формата: Поддержка Accept-заголовка для автоматического выбора формата
cd workers/
npm install
npx wrangler deployПосле развертывания получите URL Worker и обновите в файлах:
src/js/main.js- заменитеyour-domain.workers.devна реальный URLsrc/js/bing-proxy.js- обновитеbaseUrl
Worker автоматически интегрирован в основной сайт через:
- Lazy loading изображений
- Автоматическое преобразование Bing URLs
- Кеширование на стороне клиента
// Импорт helper
import { bingProxy } from './js/bing-proxy.js';
// Генерация proxy URL
const proxyUrl = bingProxy.getProxyUrl('Florida Swingers Clubs', {
width: 400,
height: 300
});
// Или из существующего Bing URL
const originalUrl = 'https://th.bing.com/th?q=Florida%20Swingers&w=400&h=300';
const proxyUrl = bingProxy.fromBingUrl(originalUrl);Все изображения с data-src содержащие th.bing.com автоматически преобразуются в proxy URLs при lazy loading.
https://your-worker.workers.dev/bing-proxy/q=query&w=400&h=300&c=7&rs=1&p=0&o=7&pid=1.1&first=1
- Cloudflare Cache: Постоянное кеширование (1 год)
- Browser Cache:
Cache-Control: public, max-age=31536000, immutable - Headers: Добавляются
X-Cache,X-Cache-StatusиX-Formatдля отладки - Формат-специфичное кеширование: Каждый формат (JPEG, WebP, AVIF) кешируется отдельно
Worker поддерживает автоматическую конвертацию изображений в WebP и AVIF:
- По
Acceptзаголовку:Accept: image/avif→ AVIF,Accept: image/webp→ WebP - Приоритет: AVIF > WebP > оригинал
- Query параметр:
?format=webpили?format=avif - Пример:
/api/images/thumbnail?q=Florida&w=400&h=300&format=webp
- При превышении лимита бесплатного плана (ошибка 9422) возвращается оригинальное изображение
- При ошибках конвертации также возвращается оригинал
- Оригинальные изображения всегда кешируются отдельно
- AVIF: quality 40 (из 100) - оптимальное сжатие с минимальной потерей качества
- WebP: quality 80 (из 100) - хороший баланс между качеством и размером файла
- Валидация URL параметров
- Ограничение только на Bing Thumbnail API
- Proper error handling
- Rate limiting через Cloudflare
Worker логирует:
- Cache hits/misses
- Ошибки запросов
- Статистику использования
https://th.bing.com/th?q=Florida%20Swingers%20Clubs%20%26%20Adult%20Venues%20Guide%202025&w=400&h=300&c=7&rs=1&p=0&o=7&pid=1.1&first=1
https://bing-image-proxy.your-domain.workers.dev/api/images/thumbnail?q=Florida%20Swingers%20Clubs&w=400&h=300&c=7&rs=1&p=0&o=7&pid=1.1&first=1
https://bing-image-proxy.your-domain.workers.dev/api/images/thumbnail?q=Florida%20Swingers%20Clubs&w=400&h=300&format=webp
https://bing-image-proxy.your-domain.workers.dev/api/images/thumbnail?q=Florida%20Swingers%20Clubs&w=400&h=300&format=avif
При запросе с заголовком Accept: image/avif или Accept: image/webp формат определяется автоматически без указания параметра format.
- Производительность: Изображения отдаются с edge-серверов
- Надежность: Не зависит от доступности Bing API
- Экономия: Один запрос к Bing, множество отдач из кеша
- SEO: Стабильные URL для изображений
- UX: Быстрая загрузка изображений