Настройка виртуального хоста

Edge для частного облака v. 4.17.05

Виртуальный хост в Edge определяет домены и порты Edge Router, на которых доступен прокси-сервер 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

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

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

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

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

    curl http:// <routerIP>:9001 /{proxy-base-path}/{resource-path} -H 'Хост: myapis.apigee.net'

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

    Примечание . Команда cURL, большинство браузеров и многие другие утилиты автоматически добавляют заголовок Host с доменом как часть запроса, поэтому вы можете фактически использовать команду cURL в форме:

    завиток http://<routerIP>:9001/{прокси-базовый-путь}/{ресурсный-путь}

Варианты, когда у вас нет записи 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}

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

Если вы хотите создать виртуальный хост, который привязывает маршрутизатор к защищенному порту, например порту с номером менее 1000, вам необходимо настроить маршрутизатор для работы от имени пользователя с доступом к этим портам. По умолчанию Маршрутизатор работает от имени пользователя «apigee», у которого нет доступа к привилегированным портам.

Чтобы запустить маршрутизатор от имени другого пользователя:

  1. От имени пользователя root создайте файл /opt/apigee/etc/edge-router.d/RUN_USER.sh .
  2. Добавьте в файл следующую запись:
    RUN_USER=корень
    Если вы не хотите запускать Маршрутизатор от имени пользователя root, укажите пользователя с доступом к порту.
  3. Сохраните файл.
  4. Если вы указали пользователя, отличного от root, измените владельца файла на этого пользователя:
    > chown USER:USER /opt/apigee/etc/edge-router.d/RUN_USER.sh
  5. Перезагрузите маршрутизатор:
    > /opt/apigee/apigee-service/bin/apigee-service перезапуск пограничного маршрутизатора