Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
Клиенты Cloud с платной учетной записью и все клиенты Edge for Private Cloud могут создавать виртуальные хосты в организации. Пользователь, создающий виртуальный хост, должен иметь роль администратора организации или пользовательскую роль с правами на изменение виртуального хоста. Пользователи с другими ролями не имеют права создавать виртуальные хосты.
Посмотрите видеоролик, представляющий виртуальных ведущих.
Создание виртуального хоста
Для создания виртуального хоста используйте следующую базовую процедуру. Фактическая процедура зависит от того, являетесь ли вы клиентом облачной или частной облачной платформы, а также от того, включен ли TLS:
- Создайте запись DNS и запись CNAME для вашего общедоступного домена.
- Если на виртуальном хосте включен TLS:
- Создайте и настройте хранилище ключей, используя процедуру, описанную здесь: Хранилища ключей и хранилища доверенных сертификатов .
- Загрузите свой сертификат и ключ в хранилище ключей. Убедитесь, что доменное имя, указанное в вашем сертификате, совпадает с псевдонимом хоста, который вы хотите использовать для виртуального хоста.
- Создайте ссылку на хранилище ключей, используя пользовательский интерфейс Edge или API. В ссылке указывается имя хранилища ключей и тип ссылки —
KeyStore. Дополнительную информацию о создании и изменении ссылок см. в разделе «Работа со ссылками» . - Если вы используете двусторонний TLS, создайте хранилище доверенных сертификатов, загрузите сертификат и создайте ссылку на это хранилище. Создайте хранилище доверенных сертификатов, используя процедуру, описанную здесь: Хранилища ключей и хранилища доверенных сертификатов .
- Создайте виртуальный хост, используя API создания виртуального хоста . Если включен TLS, убедитесь, что указаны правильные ссылки на хранилище ключей, хранилище доверенных сертификатов и псевдоним ключа.
- Если у вас уже есть прокси-серверы API, добавьте виртуальный хост в ProxyEndpoint. Виртуальный хост автоматически добавляется ко всем новым прокси-серверам API. См. раздел «Настройка прокси-сервера API для использования виртуального хоста» .
После обновления API-прокси для использования виртуального хоста и создания записи DNS и записи CNAME для псевдонима хоста, вы можете получить доступ к API-прокси, как показано ниже:
https://api.myCompany.com/v1/project-base-path/resource-path
Например:
https://api.myCompany.com/v1/weather/forecastrss?w=12797282
Создание виртуального хоста с помощью API или пользовательского интерфейса.
Создать виртуальный хост можно с помощью API Edge или пользовательского интерфейса Edge.
В большинстве приведенных ниже примеров используется API Edge. Для доступа к пользовательскому интерфейсу создания, изменения и удаления виртуальных хостов в Edge:
- Войдите на сайт apigee.com/edge
Клиенты Edge for Private Cloud используют
http:// ms-ip :9000(в локальной среде), где ms-ip — это IP-адрес или DNS-имя узла сервера управления. - В левой панели навигации выберите «Администрирование» > «Виртуальные хосты» .
- Выберите среду, например, производственную (prod) или тестовую (test) .
Отображаются виртуальные хосты, определенные для данной среды. - Выберите + Виртуальный хост , чтобы создать виртуальный хост, или выберите имя существующего виртуального хоста, чтобы отредактировать его.
Создание виртуального хоста для HTTP
Клиенты Edge for Private Cloud могут создавать виртуальные хосты с использованием протокола HTTP.
Чтобы создать виртуальный хост, не поддерживающий TLS, создайте XML-объект, определяющий виртуальный хост. Например, следующий XML-объект определяет виртуальный хост, использующий протокол HTTP:
<VirtualHost name="myVHost">
<HostAliases>
<HostAlias>api.myCompany.com</HostAlias>
</HostAliases>
<Interfaces/>
<Port>80</Port>
</VirtualHost>В этом определении вы:
- Укажите имя как myVHost . Используйте это имя для ссылки на виртуальный хост в API-прокси или в вызове API.
- Укажите псевдоним хоста как api.myCompany.com . Это общедоступный домен, используемый для доступа к вашим API, как определено в DNS-записях и CNAME-записях.
- Укажите номер порта как 80. Если этот параметр не указан, по умолчанию будет установлен порт 443.
В настройках виртуального хоста можно задать дополнительные параметры. Справочную информацию по всем параметрам см. в разделе «Справочник по параметрам виртуального хоста» .
Если у вас уже есть прокси-серверы API, добавьте виртуальный хост в элемент <HTTPConnection> в поле Proxy Endpoint. Виртуальный хост автоматически добавляется ко всем новым прокси-серверам API. См. раздел «Настройка прокси-сервера API для использования виртуального хоста ». Если вы создаете новый прокси-сервер API, который не должен быть доступен через определенный виртуальный хост, вам необходимо отредактировать прокси-сервер API, удалив этот виртуальный хост из его ProxyEndpoint.
Затем вы можете получить доступ к API-прокси через этот виртуальный хост, отправив запрос по следующему адресу:
http://api.myCompany.com/proxy-base-path/resource-path https://api.myCompany.com/proxy-base-path/resource-path
Создайте виртуальный хост, используя API создания виртуального хоста :
curl -X POST -H "Content-Type:application/xml" \
http://ms-IP:8080/v1/o/org_name/environments/env_name/virtualhosts \
-d '<VirtualHost name="myVHost">
<HostAliases>
<HostAlias>api.myCompany.com</HostAlias>
</HostAliases>
<Interfaces/>
<Port>80</Port>
</VirtualHost>' \
-u sysAdminEmail:passwordСоздание виртуального хоста для одностороннего TLS
Следующий XML-объект определяет виртуальный хост для одностороннего TLS:
<VirtualHost name="myTLSVHost">
<HostAliases>
<HostAlias>api.myCompany.com</HostAlias>
</HostAliases>
<Port>443</Port>
<SSLInfo>
<Enabled>true</Enabled>
<ClientAuthEnabled>false</ClientAuthEnabled>
<KeyStore>ref://myTestKeystoreRef</KeyStore>
<KeyAlias>myKeyAlias</KeyAlias>
</SSLInfo>
</VirtualHost> В этом определении вы включаете TLS, устанавливая элемент <Enable> в значение true, и используете элементы <KeyStore> и <KeyAliase> для указания хранилища ключей и псевдонима ключа, используемых в TLS-соединении.
Дополнительную информацию об использовании TLS см. в разделе TLS/SSL .
Определение способа указания имени хранилища ключей и хранилища доверенных сертификатов в виртуальном хосте.
При настройке виртуального хоста для поддержки TLS хранилище ключей указывается с помощью ссылки . Ссылка — это переменная, содержащая имя хранилища ключей или доверенных сертификатов, а не прямое указание имени хранилища ключей или доверенных сертификатов, как показано ниже:
<SSLInfo>
<Enabled>true</Enabled>
<ClientAuthEnabled>false</ClientAuthEnabled>
<KeyStore>ref://myTestKeystoreRef</KeyStore>
<KeyAlias>myKeyAlias</KeyAlias>
</SSLInfo>Преимущество использования ссылки заключается в том, что вы можете изменить значение ссылки, чтобы изменить хранилище ключей, используемое виртуальным хостом, обычно потому, что срок действия сертификата в текущем хранилище ключей истекает в ближайшем будущем. Изменение значения ссылки не требует перезапуска маршрутизатора Edge Router. См. раздел «Работа со ссылками» для получения дополнительной информации о создании и изменении ссылок.
Вы можете использовать только ссылку на хранилище ключей и хранилище доверенных сертификатов; вы не можете использовать ссылку на псевдоним. При изменении ссылки на хранилище ключей убедитесь, что имя псевдонима сертификата совпадает с именем в старом хранилище ключей.
Ограничения на использование ссылок на хранилища ключей и хранилища доверенных сертификатов.
При использовании ссылок на хранилища ключей и доверенных сертификатов необходимо учитывать следующее ограничение:
- Использовать ссылки на хранилища ключей и доверенных сертификатов в виртуальных хостах можно только при поддержке SNI и завершении SSL-соединения на маршрутизаторах Apigee.
- Если перед маршрутизаторами Apigee установлен балансировщик нагрузки, и вы завершаете TLS-соединение на балансировщике нагрузки, то вы не сможете использовать ссылки на хранилище ключей и хранилище доверенных сертификатов в виртуальных хостах.
Создание виртуального хоста для двустороннего TLS
Для включения двусторонней TLS-аутентификации установите для элемента <ClientAuthEnabled> значение true и укажите хранилище доверенных сертификатов, используя ссылку с элементом <TrustStore> . Хранилище доверенных сертификатов содержит информацию об издателе сертификата клиента и цепочку центров сертификации, что является обязательным условием. Клиент также должен быть правильно настроен для двусторонней TLS-аутентификации.
Для создания виртуального хоста для двустороннего TLS-соединения необходимо создать XML-объект, определяющий виртуальный хост:
<VirtualHost name="myTLSVHost">
<HostAliases>
<HostAlias>api.myCompany.com</HostAlias>
</HostAliases>
<Port>443</Port>
<SSLInfo>
<Enabled>true</Enabled>
<ClientAuthEnabled>true</ClientAuthEnabled>
<KeyStore>ref://myTestKeystoreRef</KeyStore>
<KeyAlias>myKeyAlias</KeyAlias>
<TrustStore>ref://myTestTruststoreRef</TrustStore>
</SSLInfo>
</VirtualHost>В этом определении вы:
- Включите двусторонний TLS, установив параметр
<ClientAuthEnabled>в значение true. - Укажите ссылку на хранилище доверенных сертификатов с помощью элемента
<TrustStore>. Хранилище доверенных сертификатов содержит информацию об издателе сертификата клиента и цепочку центров сертификации, что является обязательным условием.
Дополнительную информацию об использовании TLS см. в разделе TLS/SSL .
Изменение виртуального хоста
Клиенты Cloud с платной учетной записью, а также все клиенты Edge for Private Cloud могут использовать API «Обновить виртуальный хост» для обновления виртуального хоста. Этот API позволяет установить все свойства виртуального хоста, описанные в справочнике свойств виртуального хоста .
Обновите виртуальный хост, используя API обновления виртуального хоста . При использовании API необходимо указать полное определение виртуального хоста в теле запроса, а не только те элементы, которые вы хотите изменить.
В этом примере вы задаете значение свойства proxy_read_timeout :
curl -X PUT -H "Content-Type:application/xml" \
https://api.enterprise.apigee.com/v1/o/org_name/e/env_name/virtualhosts/vhost_name \
-d '<VirtualHost name="myTLSVHost">
<HostAliases>
<HostAlias>api.myCompany.com</HostAlias>
</HostAliases>
<Port>443</Port>
<SSLInfo>
<Enabled>true</Enabled>
<ClientAuthEnabled>false</ClientAuthEnabled>
<KeyStore>ref://myTestKeystoreRef</KeyStore>
<KeyAlias>myKeyAlias</KeyAlias>
</SSLInfo>
<Properties>
<Property name="proxy_read_timeout">50</Property>
</Properties>
</VirtualHost>' \
-u orgAdminEmail:passwordУдаление виртуального хоста
Прежде чем удалить виртуальный хост из среды, необходимо обновить все API-прокси, которые ссылаются на этот виртуальный хост, удалив соответствующую ссылку. См. раздел «Настройка API-прокси для использования виртуального хоста» .
Удалите виртуальный хост, используя API удаления виртуального хоста :
curl -X DELETE \ https://api.enterprise.apigee.com/v1/o/org_name/e/env_name/virtualhosts/vhost_name \ -u orgAdminEmail:password
Просмотр информации о виртуальном хосте
Просмотрите информацию о виртуальных хостах, определенных в среде, как описано ниже.
Край
Чтобы просмотреть информацию о виртуальном хосте с помощью пользовательского интерфейса Edge:
- Войдите на сайт apigee.com/edge .
Клиенты Edge for Private Cloud используют
http:// ms-ip :9000(в локальной среде), где ms-ip — это IP-адрес или DNS-имя узла сервера управления. - В левой панели навигации выберите «Администрирование» > «Виртуальные хосты» .
- Выберите среду, например, производственную (prod) или тестовую (test) .
Отображаются виртуальные хосты, определенные для данной среды. Если виртуальный хост настроен на использование хранилища ключей или хранилища доверенных сертификатов, нажмите « Показать» , чтобы просмотреть дополнительную информацию.
Если виртуальный хост настроен на использование TLS/SSL, рядом с его именем появляется значок замка. Это означает, что сертификат TLS/SSL, ключ и цепочка сертификатов загружены в Edge и связаны с виртуальным хостом. Чтобы просмотреть информацию о доступных сертификатах:
- В левой панели навигации выберите Администрирование > Окружение > Хранилища ключей TLS .
- Выберите среду (обычно
prodилиtest). - Разверните список хранилищ ключей, чтобы просмотреть сертификат.
Классический Edge (частное облако)
Чтобы просмотреть информацию о виртуальном хосте с помощью классического пользовательского интерфейса Edge:
- Войдите в систему по
http:// ms-ip :9000, где ms-ip — это IP-адрес или DNS-имя узла сервера управления. - В левой панели навигации выберите «Администрирование» > «Виртуальные хосты» .
- Выберите среду, например, производственную (prod) или тестовую (test) .
- Перейдите на вкладку «Виртуальные хосты» .
Отображаются виртуальные хосты, определенные для данной среды. Если виртуальный хост настроен на использование хранилища ключей или хранилища доверенных сертификатов, нажмите « Показать» , чтобы просмотреть дополнительную информацию.

Если виртуальный хост настроен на использование TLS/SSL, рядом с его именем появляется значок замка. Это означает, что сертификат TLS/SSL, ключ и цепочка сертификатов загружены в Edge и связаны с виртуальным хостом. Чтобы просмотреть информацию о доступных сертификатах:
- В верхней панели навигации выберите «Администрирование» > «Сертификаты TLS» .
- Выберите среду (обычно
prodилиtest). - Разверните список хранилищ ключей, чтобы просмотреть сертификат.
Просмотр виртуального хоста с помощью Edge API
Вы также можете использовать API Edge для просмотра информации о виртуальных хостах. Например, API List Virtual Hosts возвращает список всех виртуальных хостов:
curl -X GET -H "accept:application/xml" \
https://api.enterprise.apigee.com/v1/o/org_name/environments/env_name/virtualhosts \
-u orgAdminEmail:pWordГде orgAdminEmail:pWord — это имя пользователя и пароль администратора организации, а org_name / env_name указывают организацию и среду, содержащую виртуальный хост. Пример ответа:
[ "default", "secure" ]
Чтобы получить информацию о конкретном виртуальном хосте, используйте API Get Virtual Host :
curl -X GET -H "accept:application/xml" \
https://api.enterprise.apigee.com/v1/o/org_name/environments/env_name/virtualhosts/vhost_name \
-u orgAdminEmail:pWordГде vhost_name — это имя виртуального хоста. Например, вы можете указать vhost_name как "secure", чтобы увидеть конфигурацию виртуального хоста с защитой по умолчанию, созданного Apigee:
<VirtualHost name="secure">
<HostAliases>
<HostAlias>api.myCompany.com</HostAlias>
</HostAliases>
<Port>443</Port>
<Properties/>
<Interfaces/>
<RetryOptions/>
<SSLInfo>
<ClientAuthEnabled>false</ClientAuthEnabled>
<Enabled>true</Enabled>
<KeyAlias>freetrial</KeyAlias>
<KeyStore>ref://freetrial</KeyStore>
<IgnoreValidationErrors>false</IgnoreValidationErrors>
</SSLInfo>
</VirtualHost>Настройка API-прокси для использования виртуального хоста
При создании нового API-прокси Edge автоматически настраивает его для использования всех доступных виртуальных хостов в организации. Запрос к API-прокси через виртуальный хост имеет следующий вид:
https://host-alias/proxy-base-path/resource-path
Где:
- host-alias обычно представляет собой DNS-имя виртуального хоста.
- proxy-base-path задается при создании API-прокси и является уникальным для каждого API-прокси.
- resource-path — путь к ресурсу, доступному через API-прокси.
Управление виртуальными хостами, используемыми API-прокси.
В XML-конфигурации API-прокси используется тег virtualhost для указания имени виртуального хоста, связанного с API-прокси:
<HTTPProxyConnection> <BasePath>/v1/my/proxy/basepath</BasePath> <VirtualHost>secure</VirtualHost> <VirtualHost>default</VirtualHost> </HTTPProxyConnection>
Например, <VirtualHost>secure</VirtualHost> означает, что клиент может вызывать API-прокси, используя псевдоним хоста "secure" виртуального хоста.
Как правило, виртуальные хосты, связанные с API-прокси, изменяются в следующих случаях:
- Вы создаете новый виртуальный хост и используете существующие API-прокси. Вам необходимо отредактировать все существующие API-прокси, чтобы добавить новый виртуальный хост.
- Вы создаете новый API-прокси, который не должен быть доступен через определенный виртуальный хост. Вам необходимо отредактировать API-прокси, чтобы удалить этот виртуальный хост из его определения.
Чтобы изменить виртуальные хосты, связанные с API-прокси:
Получите доступ к редактору API-прокси, как описано ниже.
Край
Чтобы получить доступ к редактору API-прокси через пользовательский интерфейс Edge:
- Войдите на сайт apigee.com/edge .
Клиенты Edge for Private Cloud используют
http:// ms-ip :9000(в локальной среде), где ms-ip — это IP-адрес или DNS-имя узла сервера управления. - В левой панели навигации выберите «Разработка» > «API-прокси» .
- Выберите в списке API-прокси, который хотите отредактировать.
Классический Edge (частное облако)
Чтобы получить доступ к редактору API-прокси с помощью классического интерфейса Edge:
- Войдите в систему по
http:// ms-ip :9000, где ms-ip — это IP-адрес или DNS-имя узла сервера управления. - В верхней панели навигации выберите API > API-прокси .
- Выберите в списке API-прокси, который хотите отредактировать.
- Войдите на сайт apigee.com/edge .
- Нажмите вкладку «Разработка» .
- В разделе «Прокси-серверы» выберите «По умолчанию» .
- В области кода:
- Удалите все элементы
<VirtualHost>для виртуальных хостов, не поддерживаемых API-прокси. - Добавьте новый элемент
<VirtualHost>с именем нового виртуального хоста. Например, если новый виртуальный хост называется MyVirtualHost , добавьте следующий тег:<HTTPProxyConnection> <BasePath>/v1/my/proxy/basepath</BasePath> <VirtualHost>default</VirtualHost> <VirtualHost>secure</VirtualHost> <VirtualHost>MyVirtualHost</VirtualHost> </HTTPProxyConnection>
- Удалите все элементы
- Сохраните настройки API-прокси. Если API-прокси уже развернут, сохранение настроек приведет к его повторному развертыванию с новыми параметрами.
Настройка базового URL-адреса, отображаемого пользовательским интерфейсом Edge для прокси-сервера API.
В пользовательском интерфейсе Edge отображается URL-адрес API-прокси на основе настроек виртуального хоста, соответствующего месту развертывания прокси. В это отображение может быть включен номер порта маршрутизатора виртуального хоста.
В большинстве случаев URL-адрес, отображаемый в пользовательском интерфейсе Edge, является правильным URL-адресом для отправки внешних запросов к прокси-серверу. Однако при некоторых конфигурациях отображаемый URL-адрес может быть некорректным. Например, любая из следующих конфигураций может привести к тому, что отображаемый URL-адрес не будет соответствовать фактическому URL-адресу, используемому для отправки внешних запросов к прокси-серверу:
- Завершение SSL-соединения происходит на балансировщике нагрузки.
- Переадресация портов осуществляется между балансировщиком нагрузки и маршрутизаторами Apigee.
- Балансировщик нагрузки, настроенный с использованием перезаписи пути.
Edge поддерживает атрибут <BaseUrl> для виртуального хоста, который позволяет переопределять URL-адрес, отображаемый в пользовательском интерфейсе Edge. Вот пример, показывающий объект виртуального хоста с атрибутом <BaseUrl> . В этом примере в пользовательском интерфейсе Edge отображается значение "http://myCo.com":
<VirtualHost name="myTLSVHost">
<HostAliases>
<HostAlias>api.myCompany.com</HostAlias>
</HostAliases>
<BaseUrl>http://myCo.com</BaseUrl>
<Port>443</Port>
<SSLInfo>
<Enabled>true</Enabled>
<ClientAuthEnabled>false</ClientAuthEnabled>
<KeyStore>ref://myTestKeystoreRef</KeyStore>
<KeyAlias>myKeyAlias</KeyAlias>
</SSLInfo>
</VirtualHost>Обратите внимание, что значение параметра <BaseUrl> должно включать протокол (например, "http://" или "https://").
Если <BaseUrl> не задан, то в пользовательском интерфейсе Edge по умолчанию будет отображаться URL-адрес "api.myCompany.com", тогда как фактический псевдоним хоста — "http://myCo.com".