Можно ли добавить логику в CDN

#cdn #amazon-cloudfront #akamai

#cdn #amazon-cloudfront #akamai

Вопрос:

Возможно ли обслуживать две разные страницы на основе пользовательского агента. Я хочу служить pagename-iphone.html если пользовательский агент соответствует iPhone и pagename-other.html для всех других пользовательских агентов. Я хочу, чтобы все страницы на сайте следовали этому шаблону. Возможно ли это сделать на уровне CDN (cloud front, akamai и т. Д.).

спасибо за вашу помощь!

Комментарии:

1. Я надеюсь, что нет, и, пожалуйста, никогда не делайте этого.

Ответ №1:

Я думаю, что вам нужно кэширование на основе пользовательского агента, например vary: User-Agent . Теоретически сервер, предоставляющий службу кэширования, определенно может это сделать, однако, насколько я могу судить, CloudFront и большинство других крупных поставщиков CDN не поддерживают so.

Основная причина очень проста: в настоящее время существует слишком много заголовков User-Agent, и они практически уникальны в каждом отдельном браузере, не говоря уже о разных версиях одного и того же браузера. Если вы будете делать что-то исключительно на основе всего пользовательского агента, вы большую часть времени потеряете преимущество кэша CDN.

Некоторые из более продвинутых серверов позволяют добавлять условие на основе заголовков, например, в Varnish вы даже можете добавить логику if,else для возврата разных значений. Но это недоступно для большинства CDN.

С другой стороны, вы не должны полагаться на CDN для возврата разных HTML-страниц. CDN чаще используется для ускорения артефактов (js / css / imgs) вместо всей страницы.

РЕДАКТИРОВАТЬ: на самом деле, я только что получил электронное письмо от AWS, упомянутое сейчас, CloudFront начинает поддерживать это:

Обнаружение мобильных устройств: теперь вы можете кэшировать и доставлять настроенный контент своим зрителям на разных устройствах (например, мобильных или настольных) на основе значения заголовка User Agent.

Пожалуйста, относится к: http://aws.amazon.com/about-aws/whats-new/2014/06/26/amazon-cloudfront-device-detection-geo-targeting-host-header-cors / для получения более подробной информации.