Como configurar um host virtual

Um host virtual na borda define os domínios e as portas do roteador de borda em que um proxy de API é exposto e, por extensão, o URL que os apps usam para acessar um proxy de API. Um host virtual também define se o proxy de API é acessado usando o protocolo HTTP ou o protocolo HTTPS criptografado.

Como parte do processo de integração do Edge, você precisa criar uma organização, um ambiente e um host virtual. O Edge fornece o comando setup-org para facilitar esse processo para novos usuários.

Ao criar o host virtual, especifique as seguintes informações:

  • O nome do host virtual que você usa para referenciá-lo nos proxies da API.
  • A porta do roteador do host virtual. Normalmente, essas portas começam em 9001 e aumentam em um para cada novo host virtual.
  • O alias de host do host virtual. Normalmente, o nome DNS do host virtual.

Por exemplo, em um arquivo de configuração transmitido para o comando setup-org, é possível especificar essas informações como:

# 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

O roteador de borda compara o cabeçalho Host da solicitação recebida com a lista de aliases de host disponíveis como parte para determinar o proxy de API que processa a solicitação. Ao fazer uma solicitação por meio de um host virtual, especifique um nome de domínio que corresponda ao alias de host de um host virtual ou especifique o endereço IP do roteador e o cabeçalho Host que contém o alias do host.

Por exemplo, se você criou um host virtual com um alias de host myapis.apigee.net na porta 9001, uma solicitação cURL para uma API por esse host virtual poderá usar uma das seguintes formas:

  • Se houver uma entrada de DNS para myapis.apigee.net:
    curl http://myapis.apigee.net:9001/proxy-base-path/resource-path
  • Se você não tiver uma entrada DNS para myapis.apigee.net:
    curl http://routerIP:9001/proxy-base-path/resource-path -H 'Host: myapis.apigee.net'

    Nesse formulário, você especifica o endereço IP do roteador e transmite o alias do host no cabeçalho Host.

Opções quando você não tem uma entrada DNS para o host virtual

Uma opção quando você não tem uma entrada DNS é definir o alias do host como o endereço IP do roteador e a porta do host virtual, como routerIP:port. Por exemplo:

VHOST_ALIAS=192.168.1.31:9001

Em seguida, crie um comando curl no formulário abaixo:

curl http://routerIP:9001/proxy-base-path/resource-path

Essa opção é preferível porque funciona bem com a interface do Edge.

Se você tiver vários roteadores, adicione um alias de host para cada um deles, especificando o endereço IP de cada roteador e a porta do host virtual:

# 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"

Também é possível definir o alias do host com um valor, como temp.hostalias.com. Em seguida, é necessário transmitir o cabeçalho Host em todas as solicitações:

curl -v http://routerIP:9001/proxy-base-path/resource-path -H 'host: temp.hostalias.com'

Ou adicione o alias de host ao seu arquivo /etc/hosts. Por exemplo, adicione esta linha a /etc/hosts:

192.168.1.31   temp.hostalias.com

Em seguida, faça uma solicitação como se tivesse uma entrada DNS:

curl -v http://myapis.apigee.net:9001/proxy-base-path/resource-path