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

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

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

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

Дополнительная информация

Псевдонимы хостов

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

Пограничный маршрутизатор сравнивает заголовок 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 для частного облака версии 4.16.01 и более поздних версий маршрутизатор по умолчанию работает как пользователь "apigee", у которого нет доступа к привилегированным портам, обычно портам 1024 и ниже. Если вы хотите создать виртуальный хост, который привязывает маршрутизатор к защищенному порту, вам нужно настроить маршрутизатор так, чтобы он запускался как пользователь с доступом к этим портам. Подробнее о настройке виртуального хоста…

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

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

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

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

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

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

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

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

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

    В Edge появится форма Create Virtual Host (Создать виртуальный хост).

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

  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 Create a Virtual Host (Создать виртуальный хост), где 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 Update a Virtual Host (Обновить виртуальный хост), где <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 для частного облака 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. Повторите эти действия для всех маршрутизаторов.