О виртуальных хостах

Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X.
информация

В Edge маршрутизатор обрабатывает весь входящий трафик API. Это означает, что все запросы HTTP и HTTPS к прокси-серверу API сначала обрабатываются пограничным маршрутизатором.

Виртуальный хост позволяет разместить на сервере несколько доменных имен. Для Edge сервер соответствует Edge Router. Определив несколько виртуальных хостов на маршрутизаторе, маршрутизатор может обрабатывать запросы API к нескольким доменным именам.

Виртуальный хост на Edge определяет протокол доступа (HTTP или HTTPS), открытый порт маршрутизатора и псевдоним хоста. Псевдоним хоста обычно представляет собой доменное имя DNS, которое соответствует IP-адресу маршрутизатора.

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

Первый виртуальный хост обрабатывает HTTPS-запросы в домене имя_домена1 , а второй обрабатывает запросы HTTP в домене_имя_домена2 .

При запросе к прокси-серверу API маршрутизатор сравнивает заголовок Host входящего запроса со списком псевдонимов хостов, определенных всеми виртуальными хостами, чтобы определить, какой виртуальный хост обрабатывает запрос.

Об определениях виртуальных хостов

Виртуальные хосты содержат следующую информацию:

  • Внутреннее имя виртуального хоста. Вы используете это имя для ссылки на виртуальный хост в своих прокси API и при настройке виртуального хоста.
  • Псевдоним виртуального хоста. Обычно псевдоним хоста представляет собой доменное имя DNS, которое соответствует IP-адресу маршрутизатора. Заголовок Host запросов прокси-сервера API должен содержать псевдоним виртуального хоста.
  • Открытый порт на маршрутизаторе.
  • Включен ли TLS (доступ по протоколу HTTPS) или нет (доступ по протоколу HTTP).

Например, при создании виртуального хоста вы указываете следующую информацию:

  • имя = мойвхост
  • псевдоним хоста = apis.acme.com
  • порт = 443
  • TLS включен

В зависимости от приведенных выше настроек виртуального хоста запрос к прокси-серверу API использует форму:

https://apis.acme.com/{proxy-base-path}/{resource-path}

где:

  • { proxy-base-path } определяется при создании прокси-сервера API и уникален для каждого прокси-сервера API. Например:
    https://apis.acme.com/characters
  • { resource-path } путь к ресурсу, доступному через прокси-сервер API. Например:
    https://apis.acme.com/characters/coyote
    https://apis.acme.com/characters/roadrunner

О виртуальных хостах в Edge for the Cloud

Каждая пограничная организация автоматически включает две среды ( test и prod ), два виртуальных хоста в каждой среде ( по умолчанию и безопасный ) и записи DNS для каждого псевдонима хоста.

Псевдоним хоста каждого виртуального хоста, предоставленного Apigee, содержит имя организации и среды , как показано в следующей таблице:

Среда Имя виртуального хоста Псевдоним хоста Порт TLS включен
подталкивать по умолчанию {org-name}- prod .apigee.net 80 Нет
безопасный {org-name}- prod .apigee.net 443 Да
тест по умолчанию {org-name}- test .apigee.net 80 Нет
безопасный {org-name}- test .apigee.net 443 Да

Например, доменное имя организации под названием « myorg » по умолчанию в среде prod — « myorg-prod.apigee.net ». Поэтому для доступа к прокси-серверу API в этой организации вы используете URL-адрес в форме:

http://myorg-prod.apigee.net/{proxy-base-path}/{resource-path}
https://myorg-prod.apigee.net/{proxy-base-path}/{resource-path}

Платные планы Apigee. Доменное имя, содержащее «apigee.net», возможно, не соответствует тому, что вы хотите предоставить своим клиентам. Вы можете использовать запись DNS и запись CNAME для сопоставления доменного имени с вашей организацией в Edge. Вы также должны создать виртуальный хост с псевдонимом хоста, установленным для этого доменного имени. Это позволяет разработчикам получать доступ к вашему API через домен, специфичный для вашей компании.

Вот пример личного домена в Edge:

https://apis.acme.com/{proxy-base-path}/{resource-path}

О виртуальных хостах в Edge для частного облака

Когда вы устанавливаете Apigee Edge для частного облака, для вас не создаются организации, среды или виртуальные хосты по умолчанию. После завершения процесса установки Edge вашим первым действием обычно является создание организации, среды и виртуального хоста посредством процесса «подключения».

Чтобы выполнить подключение, выполните следующую команду на узле Edge Management Server:

/opt/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile

где configFile содержит информацию, необходимую для создания пользователя, организации, среды и виртуального хоста.

Например, вы создаете:

  • Пользователь по вашему выбору в качестве администратора организации.
  • Организация с названием example
  • Среда в организации под названием prod
  • Виртуальный хост в среде с именем default , который разрешает доступ HTTP к порту 9001.
  • Псевдоним хоста DNS-имени, используемого для доступа к маршрутизатору, или IP-адрес маршрутизатора и порт виртуального хоста в форме IP:9001 .

Позже вы сможете добавить любое количество организаций, сред и виртуальных хостов в свою локальную версию Edge. Для получения дополнительной информации см.:

Виртуальные хосты открываются на Edge Router. Поэтому вам необходимо убедиться, что порт, который вы указываете для виртуального хоста, открыт на маршрутизаторе. Вы можете использовать команду в форме ниже, чтобы открыть порт:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT --verbose

После запуска этой команды вы можете получить доступ к своим API, используя URL-адрес в форме:

http://<router-ip>:9001/{proxy-base-path}/{resource-path}

Обычно вы не публикуете свои API-интерфейсы для клиентов с указанием IP-адреса и номера порта. Вместо этого вы определяете запись DNS для маршрутизатора и порта. Например:

http://myAPI.myCo.com/{proxy-base-path}/{resource-path}

При определении записи DNS вам также необходимо создать виртуальный хост с псевдонимом хоста, совпадающим с именем домена записи DNS. В приведенном выше примере вы должны указать псевдоним хоста myAPI.myCo.com при создании виртуального хоста.

О псевдонимах хостов и DNS-именах

Одним из свойств, которое вы устанавливаете для виртуального хоста, является псевдоним хоста . Псевдоним хоста обычно представляет собой DNS-имя виртуального хоста. Способ установки псевдонима хоста зависит от типа установки Edge: облако или частное облако.

Псевдонимы хостов и DNS-имена в Edge для облака

В Edge for the Cloud, когда вы впервые создаете организацию Edge, Apigee автоматически создает две среды ( test и prod ), два виртуальных хоста в каждой среде ( по умолчанию и безопасный ) и записи DNS для каждого виртуального хоста.

Псевдоним виртуального хоста содержит название организации и среды. Поэтому запрос через виртуальный хост имеет вид:

  • http://{ org-name } -prod .apigee.net/{ proxy-base-path }/{ resource-path }
  • https://{ org-name } -prod .apigee.net/{ proxy-base-path }/{ resource-path }
  • http://{ org-name } -test .apigee.net/{ proxy-base-path }/{ resource-path }
  • https://{ org-name } -test .apigee.net/{ proxy-base-path }/{ resource-path }

Обычно вы хотите создать виртуальные хосты, которые используют ваше доменное имя, а не домен apigee.net по умолчанию. Для этого вам необходимо сначала создать собственную запись DNS и запись CNAME.

На следующем рисунке показана типичная конфигурация того, как Edge обрабатывает запрос API:

В этом примере:

  • api.acme.com — желаемое доменное имя.
  • Вы определяете запись DNS и запись CNAME, чтобы указать api.acme.com на acme-prod.apigee.net .
  • Запрос содержит заголовок Host , который маршрутизатор использует для определения виртуального хоста, обрабатывающего запрос.

В этом примере вы указываете следующую информацию в определении виртуального хоста:

  • имя = мойвхост
  • псевдоним хоста = apis.acme.com
  • порт = 443
  • Включить доступ TLS

Дополнительную информацию см. в разделе Настройка виртуальных хостов для облака .

Псевдонимы хостов и DNS-имена в Edge для частного облака

Как и в случае с Edge for the Cloud, вы создаете виртуальные хосты, которые используют ваше собственное доменное имя в качестве псевдонима хоста. Затем вы создаете собственную запись DNS и запись CNAME для доступа к этим виртуальным хостам.

Одно из отличий Cloud от Private Cloud заключается в том, что в Cloud Apigee автоматически создаются DNS-имена для ваших организаций в виде:

  • имя = по умолчанию : http://{ org-name }-{ env-name }.apigee.net (порт маршрутизатора 80)
  • имя = безопасный : https://{ org-name }-{ env-name }.apigee.net (порт маршрутизатора 443)

В Edge для частного облака вам необходимо создать записи DNS для IP-адреса и порта вашего маршрутизатора.

Например, вы указываете эту информацию в определении виртуального хоста:

  • имя = мойвхост
  • псевдоним хоста = apis.acme.com
  • порт = 9001
  • Включить доступ TLS

На следующем рисунке показана типичная конфигурация того, как Edge обрабатывает запрос API:

В этом примере:

  • api.acme.com — желаемое доменное имя.
  • Вы определяете запись DNS и запись CNAME, чтобы указать api.acme.com на IP-адрес и порт маршрутизатора.
  • Запрос содержит заголовок Host , который маршрутизатор использует для определения виртуального хоста, обрабатывающего запрос.

Дополнительную информацию см. в разделе Настройка виртуальных хостов для частного облака .

Псевдонимы хостов и подстановочные знаки

В псевдоним узла можно включить подстановочный знак «*». Подстановочный знак «*» может находиться только в начале (перед первым «.») псевдонима хоста и не может смешиваться с другими символами.

Ниже приведен пример допустимого псевдонима хоста с использованием подстановочного знака:

*.example.com

Следующие примеры недопустимы:

  www.*.example.com
  w*.example.com

Использование подстановочного знака в псевдониме виртуального хоста позволяет прокси-серверам API обрабатывать вызовы, адресованные нескольким поддоменам, таким как alpha.example.com , beta.example.com или live.example.com . Использование подстановочного псевдонима также помогает вам использовать меньше виртуальных хостов в каждой среде, чтобы не выходить за пределы продукта , поскольку виртуальный хост с подстановочным знаком считается только одним виртуальным хостом.

Сертификат TLS для виртуального хоста должен содержать соответствующий подстановочный знак в имени CN сертификата. Например, *.example.com .

О свойствах виртуального хоста

В Edge виртуальный хост представлен объектом XML. Например, следующий объект XML определяет виртуальный хост:

<VirtualHost name="vhostName">
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <!-- Private Cloud only -->
        <Interface>interfaceName</Interface>
    <Port>portNumber</Port>
    <BaseURL>http://myCo.com<</BaseUrl>
    <OCSPStapling>off</OCSPStapling>
    <RetryOptions/>
   <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
    </SSLInfo>
    <Properties>
        <Property name="proxy_read_timeout">timeout</Property>
        <Property name="keepalive_timeout">timeout</Property>
        <Property name="proxy_request_buffering">onOff</Property>
        <Property name="proxy_buffering">onOff</Property>
        <Property name="ssl_protocols">protocolList</Property>
        <Property name="ssl_ciphers">cipherList</Property>
    </Properties>
</VirtualHost>

Список свойств, которые вы можете установить, зависит от того, используете ли вы Edge для облака или Edge для частного облака. Если вы используете Edge для частного облака, список доступных свойств также зависит от вашей версии Edge. Полное описание всех свойств виртуального хоста см. в разделе Справочник по свойствам виртуального хоста .

Подробнее о создании виртуальных хостов для вашей конкретной версии Edge см.: