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

Edge for Private Cloud v4.18.01

Виртуальный хост в 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

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

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

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

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

VHOST_ALIAS=192.168.1.31:9001

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

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

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

Если у вас несколько маршрутизаторов, добавьте псевдоним хоста для каждого из них, указав 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}