Você está visualizando a documentação do Apigee Edge.
Acesse a
documentação da
Apigee X. info
Em uma instalação local, você tem controle total sobre os hosts virtuais. É possível criar hosts virtuais para qualquer organização, em qualquer ambiente, usando ou não o TLS.
Neste documento, descrevemos como criar um host virtual simples. Ou seja, uma que não oferece suporte ao TLS. Para conferir mais exemplos, incluindo exemplos de criação de hosts virtuais com suporte a TLS, consulte Como configurar o acesso TLS a uma API para a nuvem privada.
Saiba mais:
- Sobre hosts virtuais
- Como configurar hosts virtuais
- Como configurar o TLS
- Keystores e Truststores
- Como configurar o acesso TLS a uma API para a nuvem privada
Sobre os aliases de host
Ao criar o host virtual, especifique o alias dele. Normalmente, é o nome DNS do host virtual.
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
do 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 usando esse host virtual pode 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'
Nesse formulário, você especifica o endereço IP do roteador e transmite o alias do host no cabeçalho
Host
.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 do host para o endereço IP do roteador e a porta do host virtual, como routerIP:port. Por exemplo:
192.168.1.31:9001
Ao criar um comando curl
no formulário 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 um deles e a porta do host virtual.
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
Sobre as portas de host virtual no Edge para a nuvem privada 4.16.01 e versões mais recentes
Ao criar um host virtual, você especifica a porta do roteador usada por ele. Por exemplo, a porta 9001.
Para as versões 4.16.01 e mais recentes do Apigee para nuvem privada, o Router é executado como o usuário "apigee", que não tem acesso a portas privilegiadas, normalmente a partir da 1024. Se quiser criar um host virtual que vincule o roteador a uma porta protegida, configure o roteador para ser executado como um usuário com acesso a essas portas. Para mais informações, consulte Como configurar um host virtual.
Criar hosts virtuais
Esta seção descreve como criar hosts virtuais para o Apigee Edge para nuvem privada. Para criar um novo host virtual, você precisa ser um administrador da organização.
É possível criar hosts virtuais para o Apigee Edge for Private Cloud usando a API ou a interface do Edge. Eles são descritos nas seções a seguir.
Criar um host virtual usando um navegador
Esta seção descreve como criar um host virtual usando um navegador (somente na interface do Edge).
Para criar um novo host virtual na interface do Edge:
- Faça login na interface de gerenciamento do Edge.
- Selecione Administrador > Hosts virtuais.
Selecione o ambiente na lista suspensa.
O Edge mostra uma lista de hosts virtuais para esse ambiente.
- Para criar um novo host virtual, selecione + Host virtual.
No Edge, há um formulário Create Virtual Host.
Também é possível clicar no nome de um host virtual para editá-lo.
- Defina o novo host virtual. O campo URL base precisa incluir o protocolo, ou seja, prefixar o valor do campo com "http://" ou "https://".
Além disso, observe o seguinte:
- Não há limite para o número de hosts virtuais que você pode criar.
- O TLS é opcional e pode ser a versão 1.0, 1.1 ou 1.2.
- A porta do host virtual é configurável
- Clique no botão Criar para salvar seu novo host virtual.
Criar um host virtual com a API
Para criar um host virtual com a API, crie um objeto XML que defina o host virtual. Por exemplo, o objeto XML a seguir define um host virtual que usa o protocolo HTTP:
<VirtualHost name="myVHost"> <HostAliases> <HostAlias>DNS_name_or_IP:port</HostAlias> </HostAliases> <Interfaces/> <Port>9005</Port> </VirtualHost>
O host virtual contém uma propriedade name
. Use o valor da propriedade name
para configurar um proxy de API para usar o host virtual.
Em seguida, é possível acessar um proxy de API por meio desse host virtual fazendo uma solicitação para:
http://routerIP:port/proxy-base-path/resource-path
https://routerIP:port/proxy-base-path/resource-path
Em que:
http
ouhttps
: se o host virtual estiver configurado para oferecer suporte a TLS, use HTTPS. Se o host virtual não for compatível com TLS, use o HTTP.- routerIP:port é o endereço IP e o número da porta do host virtual.
- proxy-base-path e resource-path são definidos quando você cria o proxy de API.
Normalmente, você não publica suas APIs para clientes com um endereço IP e número de porta. Em vez disso, você define uma entrada DNS para o roteador e a porta. Exemplo:
http://api.myCompany.com/proxy-base-path/resource-path https://api.myCompany.com/proxy-base-path/resource-path
Se você definir a entrada DNS, será necessário criar um alias de host para o host virtual
que corresponde ao nome de domínio da entrada DNS. O alias do host precisa corresponder à string que o
cliente transmite no cabeçalho Host
.
No exemplo acima, você especificaria um alias de host de api.myCompany.com
.
<VirtualHost name="myVHost"> <HostAliases> <HostAlias>api.myCompany.com</HostAlias> </HostAliases> <Interfaces/> <Port>9005</Port> </VirtualHost>
Para criar um host virtual que use o protocolo HTTP, faça o seguinte:
- Crie o host virtual usando a API Create a Virtual Host, em que ms-IP é o endereço IP ou o nome de domínio do nó do servidor de gerenciamento:
$ curl -X POST -H "Content-Type:application/xml" \ http://ms-IP:8080/v1/o/org_name/environments/env_name/virtualhosts \ -d '<VirtualHost name="newVHost"> <HostAliases> <HostAlias>api.myCompany.com</HostAlias> </HostAliases> <Interfaces/> <Port>9005</Port> </VirtualHost>' \ -u sysAdminEmail:password
- Crie o registro DNS para o host virtual que corresponde ao alias do host.
- Se você já tiver proxies de API, adicione o host virtual ao elemento
<HTTPConnection>
no endpoint de proxy. O host virtual é adicionado automaticamente a todos os novos proxies de API. Consulte Como configurar um proxy de API para usar um host virtual.
Como modificar um host virtual
Para modificar um host virtual, faça o seguinte:
-
Atualize o host virtual usando a API Update a Virtual Host, em que
<ms-IP>
é o endereço IP ou o nome de domínio do nó do servidor de gerenciamento. É necessário especificar a definição completa do host virtual no corpo da solicitação, não apenas os elementos que você quer mudar. Neste exemplo, você muda o número da porta do host virtual de 9008 para 9009:curl -X PUT -H "Content-Type:application/xml" \ http://ms-IP:8080/v1/o/org_name/environments/env_name/virtualhosts/vhost_name \ -d '<VirtualHost name="newVHost"> <HostAliases> <HostAlias>api.myCompany.com</HostAlias> </HostAliases> <Interfaces/> <Port>9009</Port> </VirtualHost>' \ -u email:password
-
Somente para o Edge para nuvem privada versões 4.16.01 e 4.16.05, se você modificar
um host virtual atual e ativar o TLS ou desativar o TLS sem mudar o número da
porta, faça o seguinte:
Pare o roteador:
/opt/apigee/apigee-service/bin/apigee-service edge-router stop
Exclua todos os arquivos em
/opt/nginx/conf.d
:rm -f /opt/nginx/conf.d/*
Inicie o roteador:
/opt/apigee/apigee-service/bin/apigee-service edge-router start
- Repita para todos os roteadores.