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

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

При локальной установке вы имеете полный контроль над виртуальными хостами. Вы можете создавать виртуальные хосты для любой организации, в любой среде, используя 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 for Private Cloud. Обратите внимание, что для создания нового виртуального хоста необходимо быть администратором организации.

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

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

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

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

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

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

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

    В браузере 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 без изменения номера порта, то:
    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. Повторите эти действия для всех маршрутизаторов.