Геоперенаправление Azure CDN

У меня есть файлы в хранилище BLOB-объектов, которые я хотел бы разместить. Я хотел бы, чтобы конечные пользователи шли по определенному пути, а затем получали ответ, характерный для их страны.

Например, у меня есть файлы: usa.js uk.js

Я бы хотел, чтобы пользователи заходили на xxxx.edgesites.net, а затем получали свои файлы usa.js, если они находятся в США, и uk.js, если они находятся в Великобритании.

Функция геофильтрации Azure CDN выглядит так, как будто она разрешает или блокирует доступ только в зависимости от географического положения.

Есть ли другой способ добраться до моей конечной цели? Может быть, CDN -> Функция -> блоб?


person Quincy    schedule 01.05.2017    source источник


Ответы (2)


На самом деле вы можете сделать все это в Azure CDN в профиле Verizon Premium.

Премиум-профиль предлагает механизм правил — условие совпадения местоположения, которое можно использовать с функцией перезаписи URL-адреса для перенаправления к файлам, специфичным для локали.

Подробнее: https://docs.microsoft.com/en-us/azure/cdn/cdn-rules-engine-reference-match-conditions#Location

person Richard Li - MSFT    schedule 02.05.2017
comment
Спасибо! Не могли бы вы помочь мне с тем, что я на самом деле должен добавить в механизм правил? Ждать, пока новые правила станут активными, мучительно медленно, и я, кажется, ввожу все неправильные значения. Я подумал: если (страна соответствует США), то URL-адрес переписать источник: (.*) на нас-1 доллар. Тогда все запросы, поступающие в CDN, вместо этого будут извлекать версию файла «us-». - person Quincy; 02.05.2017
comment
Это только для 1 файла js или для большого количества? - person Richard Li - MSFT; 12.05.2017
comment
Всего пара файлов. - person Quincy; 13.05.2017
comment
Что странно, так это то, что я заработал со странной конфигурацией. Мне нужно установить два правила. Один для /xxxxx/ и другой для /xxxxx/CDNendpoint/. В противном случае правила одинаковы для обоих: если (страна соответствует США), то URL-адрес переписать source:world/(.*) на us/$1. Любая идея, почему это работает так? - person Quincy; 13.05.2017

Azure CDN не будет работать для вас с этим, поскольку он кэширует один файл для глобального распространения таким образом, что сокращает задержку в Интернете для ускорения загрузки.

Чтобы реализовать то, что вы ищете, вы можете использовать диспетчер трафика Azure. Создайте диспетчер трафика, используя алгоритм производительности. Затем укажите внешнюю конечную точку, указывающую на вашу учетную запись хранения Azure, и разместите учетную запись хранения Azure в регионе США, а учетную запись хранения — в регионе Великобритании. Однако вам нужно будет назвать файлы с тем же именем файла. Затем, когда пользователь в каждом регионе попытается загрузить файл, он будет перенаправлен в регион Azure, ближайший к ним с точки зрения задержки в Интернете.

Запросы будут работать следующим образом, если у вас правильно настроены диспетчер трафика и учетные записи хранения:

USA User -> hits domain.com -> directed to US region -> downloads file.js for US

UK User -> hits domain.com -> directed to UK region -> downloads file.js for UK

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

https://docs.microsoft.com/en-us/azure/traffic-manager/traffic-manager-routing-methods

person Chris Pietschmann    schedule 01.05.2017
comment
спасибо, недостатком этого является то, что мне нужно настроить домен. - person Quincy; 02.05.2017
comment
@Quincy Вы можете просто использовать поддомен Azure CDN в качестве конечной точки без настройки личного домена. - person Chris Pietschmann; 02.05.2017
comment
спасибо, похоже, что в Azure CDN я создаю конечную точку с «настраиваемым источником» и добавляю в нее адрес диспетчера трафика? - person Quincy; 02.05.2017
comment
@Quincy Способ, который я описал, будет использовать только диспетчер трафика; нет CDN. - person Chris Pietschmann; 02.05.2017
comment
Хотя у меня нет домена. Не уверены, можно ли использовать диспетчер трафика без домена? Создание чего-то вроде thisIsMyDomain.com связано с большим количеством бюрократических проволочек. - person Quincy; 02.05.2017
comment
Я попытался создать новую конечную точку, «внешнюю конечную точку» с полным доменным именем большого двоичного объекта. Azure жалуется, что это недопустимый домен. - person Quincy; 02.05.2017