Edge para nuvem privada v. 4.17.05
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}Como usar uma porta protegida em um host virtual
Se você quiser criar um host virtual que vincule o roteador a uma porta protegida, como números de porta menores que 1000, configure o roteador para ser executado como um usuário com acesso a essas portas. Por padrão, o roteador é executado como o usuário "apigee", que não tem acesso a 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 você 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 de root, mude 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 edge-router restart