Como configurar um host virtual

Edge for Private Cloud v. 4.17.05

Um host virtual no Edge define os domínios e as portas do Edge Router em que um proxy de API está expostos 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 será acessado pelo protocolo HTTP ou pela protocolo.

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

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

  • o nome do host virtual usado para referenciá-lo na API; proxies.
  • A porta no roteador do host virtual. Normalmente, essas portas começar em 9001 e aumentar 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 ao comando setup-org, pode 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 Edge Router compara o cabeçalho Host do recebida para a lista de aliases de host disponíveis como parte da determinação do proxy de API que lida com 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 contendo 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 a uma API por meio desse host virtual poderá usar uma das opções a seguir formas:

  • 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 passa o alias do host na Host.

    Observação: o comando cURL, a maioria dos navegadores e muitos outros utilitários automaticamente anexe o cabeçalho Host com o domínio como parte da solicitação, para que você possa usar um comando cURL no formato:

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

Opções quando você não tem um 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 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.

Caso você tenha vários roteadores, adicione um alias de host para cada um deles, especificando o endereço IP dos para cada roteador e 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, você pode definir o alias do host com um valor, como como temp.hostalias.com. Em seguida, você precisa passar 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 para /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}

Uso de uma porta protegida em um host virtual

Se você quiser criar um host virtual que vincule o roteador a uma porta protegida, como a porta números menores que 1.000, configure o roteador para ser executado como um usuário com acesso nessas portas. Por padrão, o roteador é executado como o usuário "apigee" que não tem acesso a e portas privilegiadas.

Para executar o roteador como um usuário diferente:

  1. Como raiz, crie o arquivo /opt/apigee/etc/edge-router.d/RUN_USER.sh.
  2. Adicione a seguinte entrada ao arquivo:
    RUN_USER=root
    Se não quiser executar o roteador como raiz, especifique um usuário com acesso à porta.
  3. Salve o arquivo.
  4. Se você especificou um usuário diferente do raiz, altere o proprietário do arquivo para esse usuário:
    &gt; chown USER:USER /opt/apigee/etc/edge-router.d/RUN_USER.sh
  5. Reinicie o roteador:
    &gt; /opt/apigee/apigee-service/bin/apigee-service-reinicialização do roteador de borda