Шлюз приложений размещение на нескольких сайтах
Размещение с несколькими сайтами позволяет настроить несколько веб-приложений на одном порту шлюзов приложений с помощью общедоступных прослушивателей. Так вы можете настроить более эффективную топологию для развернутых служб, добавляя более 100 веб-сайтов в один шлюз приложений. Каждый веб-сайт может быть направлен в свой собственный внутренний пул. Например, три домена (contoso.com, fabrikam.com и adatum.com) указывают на IP-адрес шлюза приложений. Создайте три многосайтовых прослушивателя и настройте каждый из них на использование соответствующего порта и параметра протокола.
Вы также можете определить имена узлов с подстановочными знаками в многосайтовом прослушивателе и до пяти имен узлов на каждый прослушиватель. См. сведения об использовании имен узлов с подстановочными знаками в прослушивателе.
Внимание
В ценовой категории версии 1 правила обрабатываются в том порядке, в котором они указаны на портале. Для SKU версии 2 можно указать порядок обработки, используя приоритет правил. Мы настоятельно рекомендуем в первую очередь настроить многосайтовые прослушиватели, чтобы настроить базовый прослушиватель. Это гарантирует, что трафик будет перенаправляться на правильный внутренний сервер. Если базовый прослушиватель стоит первым в списке и совпадает с входящим запросом, он будет обрабатываться прослушивателем.
Запросы для http://contoso.com
маршрутизируются в ContosoServerPool, а запросы для http://fabrikam.com
— в FabrikamServerPool.
Точно так же в одном развернутом шлюзе приложений можно разместить несколько поддоменов одного родительского домена. Например, можно разместить http://blog.contoso.com
и http://app.contoso.com
в одном развернутом шлюзе приложений.
Порядок оценки правил маршрутизации запросов
При использовании прослушивателей с несколькими сайтами для обеспечения маршрутизации трафика клиента на точную серверную часть важно, чтобы правила маршрутизации запросов присутствовали в правильном порядке.
Например, если у вас есть 2 прослушивателя со связанными именами *.contoso.com
узлов и shop.contoso.com
прослушиватель с shop.contoso.com
именем узла должен обрабатываться перед прослушивателем.*.contoso.com
Если прослушиватель *.contoso.com
обрабатывается сначала, трафик клиента не получается более конкретным shop.contoso.com
прослушивателем.
Порядок правил можно установить, указав значение поля "Приоритет " правилам маршрутизации запросов, связанным с прослушивателями. Можно указывать целые значения в диапазоне от 1 до 20 000. Числу 1 соответствует самый высокий, а числу 20 000 — самый низкий приоритет. Если входящий клиентский трафик совпадает с несколькими прослушивателями, правило маршрутизации запросов с наивысшим приоритетом используется для обслуживания запроса. Каждое правило маршрутизации запросов должно иметь уникальное значение приоритета.
Поле приоритета влияет только на порядок оценки правила маршрутизации запросов, это не изменит порядок оценки правил на основе путей в PathBasedRouting
правиле маршрутизации запросов.
Примечание.
Чтобы использовать приоритет правила, необходимо указать значения поля приоритета правила для всех существующих правил маршрутизации запросов. Когда поле приоритета правила используется, любое созданное правило маршрутизации должно иметь значение поля приоритета правила в рамках его конфигурации.
Внимание
Начиная с API версии 2021-08-01, поле приоритета правила является обязательным полем в правилах маршрутизации запросов. Значения полей приоритета правила для существующих правил маршрутизации запросов, основанные на текущем порядке оценки в рамках первого вызова PUT, автоматически заполняются, если какие-либо обновления конфигурации применяются с помощью API версии 2021-08-01 и выше, портала, Azure PowerShell и Azure CLI. Будущие обновления правил маршрутизации запросов должны иметь поле приоритета правила, предоставленное в рамках конфигурации.
Имена узлов подстановочных знаков в прослушивателе
Шлюз приложений позволяет выполнять маршрутизацию на основе узлов с помощью многосайтового прослушивателя HTTP(S). Теперь можно использовать подстановочные знаки, например звездочку (*) и вопросительный знак (?), в имени узла и до пяти имен узлов для каждого прослушивателя HTTP(S), работающего с несколькими сайтами. Например, *.contoso.com
.
Используя подстановочный знак в имени узла, можно сопоставить несколько имен узлов в одном прослушивателе. Например, *.contoso.com
может соответствовать ecom.contoso.com
, b2b.contoso.com
, а также customer1.b2b.contoso.com
и т. д. Используя массив имен узлов, можно настроить несколько имен узлов для прослушивателя, чтобы маршрутизировать запросы к внутреннему пулу. Например, прослушиватель может содержать contoso.com, fabrikam.com
запросы для обоих имен узлов.
Примечание.
Эта функция доступна только для Standard_v2 и SKU WAF_v2 Шлюз приложений.
В Azure PowerShell необходимо использовать параметр -HostNames
вместо -HostName
. При использовании HostNames можно указать до 5 имен узлов в виде значений, разделенных запятыми, и использовать подстановочные знаки. Например, -HostNames "*.contoso.com","*.fabrikam.com"
.
В Azure CLI необходимо использовать параметр --host-names
вместо --host-name
. При использовании host-names можно указать до 5 имен узлов в виде значений, разделенных запятыми, и использовать подстановочные знаки. Например, --host-names "*.contoso.com,*.fabrikam.com"
.
В портал Azure под прослушивателем с несколькими сайтами необходимо выбрать тип узла Multiple/Wildcard, чтобы указать до пяти имен узлов с разрешенными подстановочными знаками.
Разрешенные символы в поле имен узлов
(A-Z,a-z,0-9)
— алфавитно-цифровые символы;-
— дефис или минус;.
— точка в качестве разделителя;*
— может соответствовать нескольким символам в допустимом диапазоне;?
— может соответствовать одному символу в допустимом диапазоне.
Условия использования подстановочных знаков и нескольких имен узлов в прослушивателе
- В одном прослушивателе можно указать до 5 имен узлов.
- Звездочку
*
можно использовать в компоненте доменного имени или имени узла только один раз. Например, component1*.component2*.component3.(*.contoso-*.com)
является допустимым; - Имя узла может содержать до двух звездочек
*
. Например, имя*.contoso.*
является допустимым, а*.contoso.*.*.com
— нет. - Имя узла может содержать до 4 подстановочных знаков. Например, имена
????.contoso.com
,w??.contoso*.edu.*
являются допустимыми, а????.contoso.*
— нет. - Использование звездочки
*
и вопросительного знака?
вместе в компоненте имени узла (*?
, или?*
, или**
) недопустимо. Например,*?.contoso.com
и**.contoso.com
являются недопустимыми.
Рекомендации и ограничения, касающиеся использования подстановочных знаков или нескольких имен узлов в прослушивателе
- Для завершения сеансов SSL и использования сквозного режима SSL необходимо настроить протокол как HTTPS и отправить сертификат, который будет использоваться в конфигурации прослушивателя. Если это прослушиватель с несколькими сайтами, вы также можете ввести имя узла, как правило, это CN SSL-сертификата. При указании нескольких имен узлов в прослушивателе или использовании подстановочных знаков необходимо учитывать следующее:
- Если это подстановочное имя узла, например *.contoso.com, необходимо отправить подстановочный сертификат с помощью CN, например *.contoso.com
- Если в одном прослушивателе указывается несколько имен узлов, необходимо отправить SAN-сертификат, в котором имена CN совпадают с указанными именами узлов.
- Регулярное выражение нельзя использовать для упоминания имени узла. Для формирования шаблона имени узла можно использовать только подстановочные знаки, такие как звездочка (*) и вопросительный знак (?).
- Для проверки работоспособности серверной части невозможно связать несколько пользовательских проб для параметров HTTP. Вместо этого можно проверить один из веб-сайтов в серверной части или использовать адрес 127.0.0.1 для проверки localhost внутреннего сервера. Однако при использовании подстановочных знаков или нескольких имен узлов в прослушивателе запросы для всех указанных шаблонов домена направляются в внутренний пул в зависимости от типа правила (базовый или путь на основе).
- Свойство hostname принимает одну строку в качестве входных данных, где можно упомянуть только одно доменное имя, отличное от подстановочного знака. Свойство hostnames принимает массив строк в качестве входных данных, где можно упомянуть до 5 доменных имен подстановочных знаков. Оба этих свойства не могут использоваться одновременно.
Пошаговое руководство по настройке имен узлов с подстановочными знаками в многосайтовых прослушивателях см. в статье Создание шлюза приложений для размещения нескольких веб-сайтов с помощью Azure PowerShell или Использование Azure CLI.
Прослушиватель с несколькими сайтами для прослушивателей протоколов TLS и TCP
Функция с несколькими сайтами также доступна для прокси-сервера Уровня 4, но только для прослушивателей TLS. Трафик для каждого приложения можно направить в внутренний пул, указав доменные имена в прослушивателе TLS. Для функционирования многосайтовой функции в прослушивателях TLS Шлюз приложений используется значение "Указание имени сервера" (SNI) (клиенты в основном представляют расширение SNI для получения правильного TLS-сертификата). Прослушиватель TLS с несколькими сайтами выберет это значение SNI из данных подтверждения TLS для входящего подключения и перенаправит это подключение к соответствующему внутреннему пулу. Tcp-подключение по сути не имеет понятия имени узла или доменного имени; следовательно, это недоступно для прослушивателей TCP.
Заголовки узлов и указание имени сервера (SNI)
Существует три распространенных механизма включения размещения нескольких сайтов в одной инфраструктуре.
- Размещение нескольких веб-приложений с уникальным IP-адресом у каждого из них.
- Использование имени узла для размещения нескольких веб-приложений на одном IP-адресе.
- Использование разных портов для размещения нескольких веб-приложений на одном IP-адресе.
В настоящее время шлюз приложений поддерживает один общедоступный IP-адрес, на котором он прослушивает трафик. Поэтому размещение нескольких приложений, каждое из которых имеет собственный IP-адрес, сейчас не поддерживается.
Шлюз приложений поддерживает несколько приложений, прослушивающих разные порты, но в этом сценарии приложения должны принимать трафик на нестандартные порты.
Шлюз приложений использует заголовки узлов HTTP 1.1 для размещения нескольких веб-сайтов на одном общедоступном IP-адресе и порте. Сайты, размещенные в шлюзе приложений, могут также поддерживать разгрузку TLS с использованием расширения TLS для указания имени сервера (SNI). В рамках этого сценария это значит, что браузер клиента и внутренняя веб-ферма должны поддерживать HTTP/1.1 и расширение TLS, как определено в стандарте RFC 6066.
Следующие шаги
Узнайте, как настроить размещение с несколькими сайтами в Шлюз приложений
Ознакомьтесь с шаблоном Resource Manager с несколькими сайтами, на котором размещено несколько сайтов, чтобы завершить развертывание на основе шаблонов.