CDN: пересылка на другой ресурс вместо перенаправления
Мне нужно отправлять разные ресурсы (особенно изображения) для одних и тех же URL-адресов в зависимости от сложной логики, основанной на разных факторах (cookie, IP, время, случайность). Я хочу воспользоваться преимуществами CDN (кеш, доступность, близость). Итак, я хочу, чтобы этот CDN совершал вызов на мой сервер, чтобы решить, какой ресурс обслуживать любой запрос. Очень важно не использовать перенаправления, поэтому пользователь никогда не увидит код состояния 30X.
В целях разъяснения:
- Пользователь делает запрос к http://resources.mydomain.com/img/a.jpg, какой домен находится в CDN
- CDN звонит на мой сервер, отправляет запрошенные URL, куки и IP пользователя
- Мой сервер возвращает имя реального ресурса для обслуживания ( http://hidden.mydomain.com/img/a-version3.jpg)
- CDN запрашивает этот образ, если не в кеше
- CDN отвечает на запрос пользователя, отправляющий данные a-version3.jpg, но без перенаправления
Возможно ли использовать какое-либо текущее коммерческое решение?
2 ответа
Вы можете включить Redirect Chasing, чтобы получить то, что вы ищете. В качестве альтернативы, посмотрите сообщение в блоге Akamai об Edge Redirect для более быстрого выбора.
Да, я думаю, что он уже давно поддерживается CDNetworks.
Теперь он называется "Контроль исходной логики". Вы можете проверить описание на http://www.cdnetworks.com/wp-content/uploads/2013/08/CDNetworks-ContentAccel-DS-EN2.pdf:
Позволяет домену клиента требовать проверки с источником на каждый запрос.
Вы можете вернуть специальный HTTP-заголовок (или специальное тело HTTP, я не уверен сейчас), чтобы сообщить CDNetworks, что нужно возвращать ресурсы напрямую (и использовать кэшированную версию, если она доступна), а не 30-кратный код состояния.