← Обзор / ai-search / configuration / retrieval / public-endpoint
Пользовательские домены
Пользовательский домен обслуживает ваш публичная конечная точка с имени хоста, которым вы владеете, например search.example.com, вместо стандартного <PUBLIC_ENDPOINT_ID>.search.ai.cloudflare.com имя хоста.
Эндпойнты и форматы запросов остаются прежними. Изменяется только имя хоста:
https://search.example.com/search
https://search.example.com/chat/completions
https://search.example.com/mcpПользовательские домены также лежат в основе ограничение доступа с помощью Cloudflare Access, который позволяет пользователям пройти аутентификацию у вашего провайдера идентификации, прежде чем они смогут делать запросы к вашему индексированному контенту.
Требования
- Публичная конечная точка уже должна быть включена на экземпляре или в пространстве имён. Если добавить пользовательский домен к экземпляру без активной публичной конечной точки, возвращается ошибка
7093. - Имя хоста должно принадлежать зоне, которая добавленные в тот же аккаунт Cloudflare и в активном состоянии. Имя хоста, принадлежащее другому аккаунту, вернёт ошибку
7090. - Каждый экземпляр или пространство имён поддерживает один пользовательский домен.
- Имя хоста можно привязать только к одной публичной конечной точке одновременно. Повторное использование имени хоста возвращает ошибку
7091. - Имя хоста должно быть полным доменным именем длиной не более 253 символов, например
search.example.com. Подстановочные знаки не поддерживаются. Имена хостов хранятся в нижнем регистре.
Добавление пользовательского домена
Задайте public_endpoint_params.custom_domains при создании или обновлении экземпляра.
curl -X PUT "https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/ai-search/namespaces/default/instances/<INSTANCE_ID>" \
-H "Authorization: Bearer <API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"public_endpoint_params": {
"enabled": true,
"custom_domains": ["search.example.com"]
}
}'Это же поле доступно и для пространств имён. См. Публичные конечные точки пространства имён.
Cloudflare выпускает сертификат для имени хоста и запускает проверку контроля над доменом.
Создайте DNS-запись
Создайте проксируется CNAME запись в зоне, которой принадлежит ваш собственный домен. Целью является имя хоста по умолчанию для публичного эндпойнта, а именно <PUBLIC_ENDPOINT_ID>.search.ai.cloudflare.com.
| Тип | Название | Цель | Статус прокси |
|---|---|---|---|
CNAME |
search |
<PUBLIC_ENDPOINT_ID>.search.ai.cloudflare.com |
Proxied |
curl -X POST "https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/dns_records" \
-H "Authorization: Bearer <API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"type": "CNAME",
"name": "search",
"content": "<PUBLIC_ENDPOINT_ID>.search.ai.cloudflare.com",
"proxied": true
}'Пользовательский домен начинает обслуживать трафик после завершения проверки контроля над доменом.
Отключение имени хоста по умолчанию
По умолчанию публичная конечная точка отвечает как на пользовательском домене, так и на домене по умолчанию <PUBLIC_ENDPOINT_ID>.search.ai.cloudflare.com имя хоста. Задайте default_domain_enabled к false и таким образом обслуживать только пользовательский домен. После этого имя хоста по умолчанию возвращает 404 с ошибкой 60018.
curl -X PUT "https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/ai-search/namespaces/default/instances/<INSTANCE_ID>" \
-H "Authorization: Bearer <API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"public_endpoint_params": {
"enabled": true,
"custom_domains": ["search.example.com"],
"default_domain_enabled": false
}
}'Отключайте эту функцию, если перед пользовательским доменом настроены средства защиты. Они работают в вашей собственной зоне, поэтому любой трафик, достигающий имени хоста по умолчанию, минует их. См. Cloudflare Access.
Действуют три правила:
- Отключить имя хоста по умолчанию нельзя, если не настроен хотя бы один пользовательский домен. Запрос возвращает ошибку
7096. - Поскольку
public_endpoint_paramsзаменяется целиком, а пропускdefault_domain_enabledпри последующем обновлении сбрасывает его наtrueи снова делает доступным имя хоста по умолчанию. - Оставьте
CNAMEзапись, указывающую на имя хоста по умолчанию. AI Search маршрутизирует запросы по имени хоста, которое запросил клиент, а не поCNAMEцель, поэтому запись продолжает работать даже после отключения имени хоста по умолчанию.
Удаление пользовательского домена
Отправить custom_domains как пустой массив. Cloudflare удаляет сертификат и прекращает маршрутизацию для этого имени хоста.
curl -X PUT "https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/ai-search/namespaces/default/instances/<INSTANCE_ID>" \
-H "Authorization: Bearer <API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"public_endpoint_params": {
"enabled": true,
"custom_domains": []
}
}'Если default_domain_enabled это false, при удалении последнего пользовательского домена в том же запросе возвращается ошибка 7096. Сначала снова включите имя хоста по умолчанию, а затем удалите домен.
Удаление экземпляра или пространства имён удаляет его пользовательские домены и сертификаты.
Ошибки
| Код | Сообщение | Причина |
|---|---|---|
7090 |
custom_domain_not_a_verified_zone_on_this_account |
Имя хоста не принадлежит активной зоне в этом аккаунте. |
7091 |
custom_domain_already_in_use |
Имя хоста уже подключено к другой публичной конечной точке. |
7092 |
custom_domain_provisioning_failed |
Не удалось выпустить сертификат. Повторите запрос. |
7093 |
custom_domains_require_an_active_public_endpoint |
У экземпляра или пространства имён нет активной публичной конечной точки. |
7096 |
disabling_the_default_domain_requires_at_least_one_custom_domain |
default_domain_enabled было установлено в значение false без пользовательского домена. |
60018 |
default domain disabled |
Запрос достиг имени хоста по умолчанию, пока оно отключено. |