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:
- Como raiz, crie o arquivo /opt/apigee/etc/edge-router.d/RUN_USER.sh.
- 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. - Salve o arquivo.
- Se você especificou um usuário diferente do raiz, altere o proprietário do arquivo para esse usuário:
> chown USER:USER /opt/apigee/etc/edge-router.d/RUN_USER.sh - Reinicie o roteador:
> /opt/apigee/apigee-service/bin/apigee-service-reinicialização do roteador de borda