← Cloudflare for Platforms / cloudflare-for-platforms / cloudflare-for-saas / start / advanced-settings
Пользовательский исходный сервер
A пользовательский исходный сервер позволяет отправлять трафик с одного или нескольких пользовательских имён хостов куда-то, помимо стандартного proxy fallback, например:
soap.stores.comнаправляется наorigin1.comtowel.stores.comнаправляется наorigin2.com
Требования
Чтобы использовать пользовательский исходный сервер, необходимо выполнить следующие требования:
- Каждый пользовательский origin должен быть допустимым именем хоста с проксированной (оранжевое облако) записью A, AAAA или CNAME в DNS вашего аккаунта. IP-адрес использовать нельзя.
- DNS-запись пользовательского исходного сервера на данный момент не поддерживает подстановочные значения.
Используйте пользовательский исходный сервер
Чтобы использовать пользовательский исходный сервер, выберите этот вариант при создание нового пользовательского имени хоста в дашборде или включите "custom_origin_server": your_custom_origin_server параметр при использовании API Команда POST.
Origin-серверы облачных провайдеров (Azure, AWS, GCP)
Если в качестве пользовательского origin-сервера используется endpoint облачного провайдера (например, Azure App Service, AWS ALB или GCP Cloud Run), этот провайдер может отклонять запросы с 404 или 400 ошибку, если Host заголовок не соответствует домену, настроенному на этой конечной точке.
По умолчанию Cloudflare отправляет исходное пользовательское имя хоста как Host заголовок. Если ваш облачный провайдер ожидает другое имя хоста:
- Настройте облачного провайдера так, чтобы он принимал пользовательское имя хоста как действительный домен, или
- Используйте Origin Rule чтобы переопределить
Hostзаголовок так, чтобы он соответствовал имени хоста, которое ожидает ваш облачный провайдер.
Перезаписи SNI
Когда Cloudflare устанавливает подключение к вашему исходному серверу по умолчанию, Host заголовок и SNI оба будут содержать значение исходного пользовательского имени хоста.
Однако если вы настроите это пользовательское имя хоста с пользовательским origin-сервером, значение SNI будет соответствовать этому origin-серверу, а Host заголовок будет исходным пользовательским именем хоста. Поскольку эти значения не совпадут, вы не сможете использовать Full (strict) на ваших исходных серверах.
Чтобы решить эту проблему, обратитесь в account team и запросите право на использование Перезаписи SNI.
Варианты перезаписи SNI
Выберите, как ваше пользовательское имя хоста будет задавать значение SNI с помощью перезаписей SNI:
-
Имя origin-сервера (по умолчанию): задаёт для SNI значение пользовательского origin-сервера
- Если пользовательским origin-сервером является
custom-origin.example.com, то SNI имеет значениеcustom-origin.example.com.
- Если пользовательским origin-сервером является
-
заголовок Host: Задайте для SNI значение заголовка host (или его переопределение)
- Если подстановочные знаки не включены и имя хоста имеет значение
example.com, то SNI имеет значениеexample.com. - Если подстановочные знаки включены, имя хоста принимает вид
example.com, и запрос поступает наwww.example.com, то SNI имеет значениеwww.example.com.
- Если подстановочные знаки не включены и имя хоста имеет значение
-
Поддомен зоны: Выберите, что задать в качестве значения SNI (пользовательское имя хоста или любой поддомен)
- Если подстановочные знаки не включены и запрос поступает на
example.com, выберите, устанавливать ли SNI какexample.comилиwww.example.com. - Если подстановочные знаки включены, задайте для SNI значение
example.com, и запрос поступает наwww.example.com, то SNI имеет значениеexample.com.
- Если подстановочные знаки не включены и запрос поступает на
Задайте перезапись SNI
Чтобы задать перезапись SNI в дашборде, выберите нужный вариант из Значение Origin SNI когда создание пользовательского имени хоста.
Чтобы задать перезапись SNI через API, укажите custom_origin_sni параметр, когда создание пользовательского имени хоста:
- Имя пользовательского исходного сервера (по умолчанию): применяется, если вы не задали параметр
- заголовок Host: Укажите
":request_host_header:" - Поддомен зоны: Устанавливается на
"example.com"или другого поддомена пользовательского имени хоста