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

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

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

В этом документе описывается, как создать простой виртуальный хост. То есть тот, который не поддерживает TLS. Дополнительные примеры, включая примеры создания виртуальных хостов с поддержкой TLS, см. в разделе Настройка доступа TLS к API для частного облака .

Узнать больше :

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

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

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

Например, если вы создали виртуальный хост с псевдонимом myapis.apigee.net на порту 9001 , то запрос cURL к API через этот виртуальный хост может использовать одну из следующих форм:

  • Если у вас есть запись DNS для myapis.apigee.net :

    curl http://myapis.apigee.net:9001/proxy-base-path/resource-path
  • Если у вас нет записи DNS для myapis.apigee.net :

    curl http://routerIP:9001/proxy-base-path/resource-path -H 'host:myapis.apigee.net'

    В этой форме вы указываете IP-адрес маршрутизатора и передаете псевдоним хоста в заголовке Host .

    curl http://routerIP:9001/proxy-base-path/resource-path

Варианты, когда у вас нет записи DNS для виртуального хоста

Один из вариантов, когда у вас нет записи DNS, — установить псевдоним хоста для IP-адреса маршрутизатора и порта виртуального хоста, например routerIP : port . Например:

192.168.1.31:9001

Когда вы вводите команду curl в форме ниже:

curl http://routerIP:9001/proxy-base-path/resource-path

Этот вариант предпочтителен, поскольку он хорошо работает с пользовательским интерфейсом Edge.

Если у вас несколько маршрутизаторов, добавьте псевдоним хоста для каждого маршрутизатора, указав IP-адрес каждого маршрутизатора и порт виртуального хоста.

Альтернативно вы можете установить псевдоним хоста в значение, например temp.hostalias.com . Затем вам необходимо передавать заголовок Host при каждом запросе:

curl -v http://routerIP:9001/proxy-base-path/resource-path -H 'Host: temp.hostalias.com'

Или добавьте псевдоним хоста в файл /etc/hosts . Например, добавьте эту строку в /etc/hosts:

192.168.1.31 temp.hostalias.com

Затем вы можете сделать запрос, как если бы у вас была запись DNS:

curl -v http://myapis.apigee.net:9001/proxy-base-path/resource-path

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

При создании виртуального хоста вы указываете порт маршрутизатора, используемый виртуальным хостом. Например, порт 9001.

В версиях Apigee for Private Cloud 4.16.01 и более поздних по умолчанию маршрутизатор работает от имени пользователя «apigee», который не имеет доступа к привилегированным портам, обычно портам 1024 и ниже. Если вы хотите создать виртуальный хост, который привязывает маршрутизатор к защищенному порту, вам необходимо настроить маршрутизатор для работы от имени пользователя с доступом к этим портам. Дополнительную информацию см. в разделе Настройка виртуального хоста .

Создание виртуальных хостов

В этом разделе описывается, как создать виртуальные хосты для Apigee Edge для частного облака. Обратите внимание: для создания нового виртуального хоста вы должны быть администратором организации.

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

Создайте виртуальный хост с помощью браузера

В этом разделе описывается, как создать виртуальный хост с помощью браузера (только для пользовательского интерфейса Edge).

Чтобы создать новый виртуальный хост в пользовательском интерфейсе Edge:

  1. Войдите в пользовательский интерфейс управления Edge.
  2. Выберите «Администратор» > «Виртуальные хосты» .
  3. Выберите среду из раскрывающегося списка.

    Edge отображает список виртуальных хостов для этой среды.

  4. Чтобы создать новый виртуальный хост, выберите + Virtual Host .

    Edge отображает форму создания виртуального хоста .

    Вы также можете щелкнуть имя существующего виртуального хоста, чтобы отредактировать его.

  5. Определите свой новый виртуальный хост. Обратите внимание, что поле «Базовый URL-адрес» должно включать протокол (т. е. к значению поля должен быть добавлен префикс «http://» или «https://»).

    Дополнительно обратите внимание, что:

    • Нет ограничений на количество виртуальных хостов, которые вы можете создать.
    • TLS не является обязательным и может иметь версию 1.0, 1.1 или 1.2.
    • Порт виртуального хоста настраивается
  6. Нажмите кнопку «Создать» , чтобы сохранить новый виртуальный хост.

Создайте виртуальный хост с помощью API

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

<VirtualHost name="myVHost">
   <HostAliases>
     <HostAlias>DNS_name_or_IP:port</HostAlias>
   </HostAliases>
   <Interfaces/>
   <Port>9005</Port>
</VirtualHost>

Обратите внимание, что виртуальный хост содержит свойство name . Значение свойства name используется для настройки прокси-сервера API для использования виртуального хоста.

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

http://routerIP:port/proxy-base-path/resource-path
https://routerIP:port/proxy-base-path/resource-path

Где:

  • http или https : если виртуальный хост настроен на поддержку TLS, используйте HTTPS. Если виртуальный хост не поддерживает TLS, используйте HTTP.
  • routerIP : port — это IP-адрес и номер порта виртуального хоста.
  • proxy-base-path и resource-path определяются при создании прокси-сервера API.

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

http://api.myCompany.com/proxy-base-path/resource-path
https://api.myCompany.com/proxy-base-path/resource-path

Если вы определяете запись DNS, вам необходимо создать псевдоним хоста для виртуального хоста, который соответствует имени домена записи DNS. Псевдоним хоста должен соответствовать строке, которую клиент передает в заголовке Host . В приведенном выше примере вы должны указать псевдоним хоста api.myCompany.com .

<VirtualHost name="myVHost">
    <HostAliases>
        <HostAlias>api.myCompany.com</HostAlias>
    </HostAliases>
    <Interfaces/>
    <Port>9005</Port>
</VirtualHost>

Чтобы создать виртуальный хост, использующий протокол HTTP, выполните следующие действия:

  1. Создайте виртуальный хост с помощью API создания виртуального хоста , где ms-IP — это IP-адрес или доменное имя узла сервера управления:
    $ curl -X POST -H "Content-Type:application/xml" \
    http://ms-IP:8080/v1/o/org_name/environments/env_name/virtualhosts \
    -d '<VirtualHost name="newVHost">
        <HostAliases>
          <HostAlias>api.myCompany.com</HostAlias>
        </HostAliases>
        <Interfaces/>
        <Port>9005</Port>
      </VirtualHost>' \
    -u sysAdminEmail:password
    
  2. Создайте запись DNS для виртуального хоста, соответствующую псевдониму хоста.
  3. Если у вас есть существующие прокси-серверы API, добавьте виртуальный хост к элементу <HTTPConnection> в конечной точке прокси-сервера. Виртуальный хост автоматически добавляется ко всем новым прокси-серверам API. См. Настройка прокси-сервера API для использования виртуального хоста .

Изменение виртуального хоста

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

  1. Обновите виртуальный хост с помощью API обновления виртуального хоста , где <ms-IP> — это IP-адрес или доменное имя узла сервера управления. В теле запроса необходимо указать полное определение виртуального хоста, а не только элементы, которые вы хотите изменить. В этом примере вы меняете номер порта виртуального хоста с 9008 на 9009:

    curl -X PUT -H "Content-Type:application/xml" \
      http://ms-IP:8080/v1/o/org_name/environments/env_name/virtualhosts/vhost_name \
      -d '<VirtualHost name="newVHost">
        <HostAliases>
          <HostAlias>api.myCompany.com</HostAlias>
        </HostAliases>
        <Interfaces/>
        <Port>9009</Port>
      </VirtualHost>' \
      -u email:password
  2. Только для Edge for Private Cloud версий 4.16.01 и 4.16.05. Если вы измените существующий виртуальный хост и либо включите TLS, либо отключите TLS без изменения номера порта, то:
    1. Остановите маршрутизатор:

      /opt/apigee/apigee-service/bin/apigee-service edge-router stop
    2. Удалите все файлы в /opt/nginx/conf.d :

      rm -f /opt/nginx/conf.d/*
    3. Запустите маршрутизатор:

      /opt/apigee/apigee-service/bin/apigee-service edge-router start
    4. Повторите для всех маршрутизаторов.