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 roteador do Edge 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, é preciso 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, você precisa especificar as seguintes informações:

  • O nome do host virtual que você usa para fazer referência a ele nos proxies de API.
  • A porta no roteador para o 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 do Edge compara o cabeçalho Host da solicitação recebida 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 host de um host virtual ou especifique o endereço IP do roteador e o cabeçalho Host que contém o alias de 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 meio desse host virtual poderá usar um dos seguintes formulários:

  • Se você tiver uma entrada 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'

    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 ao 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 de 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, faça 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, 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, é possível definir o alias do host como um valor, como temp.hostalias.com. Em seguida, é preciso transmitir 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 do 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 tivesse uma entrada DNS:

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