Как настроить виртуальный хост

Edge for Private Cloud версии 4.17.09

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

В процессе регистрации в Edge вам нужно создать организацию, среду и виртуальный хост. В Edge есть команда setup-org, которая упрощает этот процесс для новых пользователей.

При создании виртуального хоста необходимо указать следующую информацию:

  • Название виртуального хоста, которое вы используете для ссылки на него в прокси-серверах API.
  • Порт на маршрутизаторе для виртуального хоста. Обычно эти порты начинаются с 9001 и увеличиваются на единицу для каждого нового виртуального хоста.
  • Псевдоним хоста виртуального хоста. Обычно это DNS-имя виртуального хоста.

Например, в файле конфигурации, переданном команде setup-org, можно указать следующую информацию:

# Specify virtual host information.
VHOST_PORT=9001
VHOST_NAME=default

# If you have a DNS entry for the virtual host.
VHOST_ALIAS=myapis.apigee.net

Чтобы определить, какой прокси-сервер API должен обработать запрос, пограничный маршрутизатор сравнивает заголовок Host входящего запроса со списком доступных псевдонимов хостов. При отправке запроса через виртуальный хост укажите доменное имя, соответствующее псевдониму хоста виртуального хоста, или укажите 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, большинство браузеров и многие другие утилиты автоматически добавляют заголовок Host с доменом в качестве части запроса, поэтому вы можете использовать команду cURL в следующем формате:

    curl http://<routerIP>:9001/{proxy-base-path}/{resource-path}

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

Если у вас нет записи DNS, вы можете задать псевдоним хоста, указав IP-адрес маршрутизатора и порт виртуального хоста в формате <IP-адрес маршрутизатора>:порт. Пример:

VHOST_ALIAS=192.168.1.31:9001

Затем создайте команду curl в следующей форме:

curl http://<routerIP>:9001/{proxy-base-path}/{resource-path} 

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

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

# Specify the IP and port of each router as a space-separated list enclosed in quotes:
# VHOST_ALIAS="192.168.1.31:9001 192.168.1.32:9001"

Вы также можете задать для псевдонима хоста значение, например 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}