Como configurar hosts virtuais para a nuvem privada

Esta é a documentação do Apigee Edge.
Acesse Documentação da Apigee X.
informações

Em uma instalação no local, você tem controle total sobre os hosts virtuais. É possível criar hosts virtuais de qualquer organização, em qualquer ambiente, que use ou não TLS.

Neste documento, descrevemos como criar um host virtual simples. Ou seja, um que não oferecem suporte a TLS. Para obter mais exemplos, inclusive exemplos sobre a criação de hosts virtuais compatíveis com TLS, consulte Como configurar o TLS acesso a uma API para a nuvem privada.

Saiba mais:

Sobre aliases de host

Ao criar o host virtual, especifique o alias dele. Normalmente, esse é o nome DNS do host virtual.

O Edge Router compara o cabeçalho Host da solicitação recebida com o 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 host alias de um 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 do myapis.apigee.net na porta 9001, depois uma solicitação cURL para uma API por meio desse host virtual pode usar uma das seguintes 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 Cabeçalho Host.

    curl http://routerIP:9001/proxy-base-path/resource-path

Opções ao fazer isso não tiver uma entrada 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:

192.168.1.31:9001

Quando você cria 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.

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.

Como alternativa, você pode definir o alias de host com um valor, como temp.hostalias.com. Em seguida, você precisa 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 de host ao arquivo /etc/hosts. Por exemplo, adicione esta linha /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

Sobre as portas do host virtual no Edge para a nuvem privada 4.16.01 e posterior

Ao criar um host virtual, você especifica a porta do roteador usada por ele. Para exemplo, a porta 9001.

Na versão 4.16.01 e mais recentes da Apigee para nuvem privada, por padrão, o roteador é executado usuário "apigee" que não tem acesso a portas privilegiadas, em geral as portas 1024 e anteriores. Se quiser criar um host virtual que vincule o roteador a uma porta protegida, configurar 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

Nesta seção, descrevemos como criar hosts virtuais para o Apigee Edge para nuvem privada. Observe que, para criar um novo host virtual, você deve ser um administrador da organização.

É possível criar hosts virtuais para o Apigee Edge para nuvem privada usando a API ou a interface do Edge. 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 (apenas interface do Edge).

Para criar um novo host virtual na interface do Edge:

  1. Faça login na interface de gerenciamento de borda.
  2. Selecione Administrador > Hosts virtuais.
  3. Selecione o ambiente na lista suspensa.

    O Edge mostra uma lista de hosts virtuais para esse ambiente.

  4. Para criar um novo host virtual, selecione + Virtual Host.

    No Edge, há um formulário Create Virtual Host.

    Você também pode clicar no nome de um host virtual existente para editá-lo.

  5. Defina seu novo host virtual. O campo URL base deve incluir as seguintes informações (ou seja, insira o prefixo "http://" ou "https://" no valor do campo).

    Além disso, observe o seguinte:

    • Não há limite para o número de hosts virtuais que podem ser criados
    • O TLS é opcional e pode ser a versão 1.0, 1.1 ou 1.2
    • A porta do host virtual pode ser configurada
  6. 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 protocolo:

<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. Você usa o valor do atributo name para configurar um proxy de API e usar o host virtual.

Em seguida, você pode acessar um proxy de API por esse 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 ou https: se o host virtual estiver configurado para oferecer suporte a TLS, use HTTPS. Se o host virtual não oferecer suporte a TLS, use 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, defina 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 de 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 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:

  1. Crie o host virtual usando o Crie um API 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
    
  2. Crie o registro DNS para o host virtual que corresponde ao alias do host.
  3. 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 da API. Consulte Configurar um proxy de API para usar um host virtual.

Como modificar um host virtual

.

Para modificar um host virtual, faça o seguinte:

  1. Atualize o host virtual usando o comando Atualize uma API Virtual Host, em que <ms-IP> é o endereço IP. ou o nome do domínio do nó do servidor de gerenciamento. Você deve especificar a definição completa do host virtual no corpo da solicitação, e não somente nos elementos que você quer alterar. Neste exemplo, altere 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
  2. Somente para o Edge para nuvem privada versões 4.16.01 e 4.16.05, se você modificar um host virtual existente e ativar ou desativar o TLS sem alterar a porta número, então:
    1. Interrompa o roteador:

      /opt/apigee/apigee-service/bin/apigee-service edge-router stop
    2. Exclua todos os arquivos em /opt/nginx/conf.d:

      rm -f /opt/nginx/conf.d/*
    3. Inicie o roteador:

      /opt/apigee/apigee-service/bin/apigee-service edge-router start
    4. Repita o procedimento para todos os roteadores.