Como configurar um host virtual

Edge para nuvem privada v. 4.17.09

Um host virtual no Edge define os domínios e as portas do Edge Router 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 da 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 oferece 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 usado para fazer referência a ele nos proxies da API.
  • A porta no roteador para o host virtual. Normalmente, essas portas começam em 9001 e aumentam em uma para cada novo host virtual.
  • O alias do host. 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 de entrada com a lista de aliases de host disponíveis como parte da determinação do proxy de API que processa a solicitação. Ao fazer uma solicitação por um host virtual, especifique um nome de domínio que corresponda ao alias 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 de myapis.apigee.net na porta 9001, uma solicitação cURL para uma API por esse host virtual poderá usar um dos seguintes formulários:

  • Se você tiver 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 de DNS para myapis.apigee.net:

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

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

    Observação: o comando cURL, a maioria dos navegadores e muitos outros utilitários anexam automaticamente o cabeçalho Host com o domínio como parte da solicitação. Portanto, é possível usar um comando cURL no formato:

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

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 de 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 formato 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"

Como alternativa, defina o alias do host como um valor, como temp.hostalias.com. Em seguida, transmita o cabeçalho Host em cada solicitação:

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

Ou adicione o alias de host ao 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 você tivesse uma entrada de DNS:

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