Sobre hosts virtuais

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

No Edge, um Roteador processa todo o tráfego de entrada da API. Ou seja, todos os protocolos HTTP e HTTPS primeiro as solicitações para um proxy de API são processadas por um Edge Router.

Com um host virtual, é possível hospedar vários nomes de domínio em um servidor. No caso de Edge, o servidor corresponde a um Edge Router. Ao definir vários hosts virtuais em um roteador, o roteador pode processar solicitações de API para vários nomes de domínio.

Um host virtual no Edge define o protocolo de acesso (HTTP ou HTTPS), uma porta aberta do roteador e alias. Normalmente, o alias do host é o nome de domínio DNS que é mapeado para o endereço IP do roteador.

Por exemplo, a imagem a seguir mostra um roteador com duas definições de host virtual:

O primeiro host virtual lida com solicitações HTTPS domínio domainName1, e a segunda processa solicitações HTTP no domainName2.

Em uma solicitação para um proxy de API, o roteador compara o cabeçalho Host da solicitação recebida com o lista de aliases de host definidos por todos os hosts virtuais para determinar quais o host lida com a solicitação.

Sobre as definições de host virtual

Os hosts virtuais contêm as seguintes informações:

  • O nome interno do host virtual. Use esse nome para se referir ao servidor host nos proxies de API e ao configurar o host virtual.
  • O alias do host do host virtual. Normalmente, o alias do host é o namespace nome de domínio que corresponde ao endereço IP no roteador. O cabeçalho Host de uma As solicitações de proxy de API precisam conter o alias do host virtual.
  • Uma porta aberta no roteador.
  • Se o TLS (acesso HTTPS) está ativado ou não (acesso HTTP).

Por exemplo, você especifica as seguintes informações ao criar um host virtual:

  • nome = myvhost
  • alias do host = apis.acme.com
  • porta: 443
  • O TLS está ativado
.

Com base na configuração acima para o host virtual, uma solicitação para um proxy de API usa o formulário:

https://apis.acme.com/{proxy-base-path}/{resource-path}

em que:

  • {proxy-base-path} é definido quando você cria um proxy de API e é exclusivo para cada proxy de API. Exemplo:
    https://apis.acme.com/characters
  • {resource-path} o caminho para um recurso acessível pelo proxy de API. Exemplo:
    https://apis.acme.com/characters/coyote
    https://apis.acme.com/characters/roadrunner

Sobre hosts virtuais em Borda para a nuvem

Cada organização de Edge inclui automaticamente dois ambientes (test e prod), dois hosts virtuais em cada ambiente (default e secure), e registros DNS para cada alias de host.

O alias de cada host virtual fornecido pela Apigee contém o nome da organização e environment, conforme mostrado na tabela a seguir:

Ambiente Nome do host virtual Alias de host Port TLS ativado
prod padrão {org-name}-prod.apigee.net 80 Não
seguro {org-name}-prod.apigee.net 443 Sim
teste padrão {org-name}-test.apigee.net 80 Não
seguro {org-name}-test.apigee.net 443 Sim

Por exemplo, o nome de domínio padrão de uma organização chamada "myorg" no ambiente prod é "myorg-prod.apigee.net". Portanto, para acessar um proxy de API nessa organização, use um URL no formato:

http://myorg-prod.apigee.net/{proxy-base-path}/{resource-path}
https://myorg-prod.apigee.net/{proxy-base-path}/{resource-path}

Planos pagos da Apigee: um nome de domínio que contém "apigee.net". pode não ser o que você quer expor para os clientes. Você pode usar uma entrada DNS e um registro CNAME para mapear um nome de domínio para sua organização no Edge. Você também deve criar um host virtual com o alias de host definido para esse nome de domínio. Isso permite que os desenvolvedores acessem a API por meio de um domínio específico para sua empresa.

Confira um exemplo de domínio personalizado no Edge:

https://apis.acme.com/{proxy-base-path}/{resource-path}

Sobre hosts virtuais on Edge para nuvem privada

Quando você instala o Apigee Edge para nuvem privada, não há organizações padrão, ou hosts virtuais criados para você. Depois de concluir o processo de instalação do Edge, a primeira ação normalmente é criar uma organização, um ambiente e um host virtual por meio de a "integração" de desenvolvimento de software.

Para realizar a integração, execute o seguinte comando no nó do servidor de gerenciamento de borda:

/opt/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile

onde configFile contém as informações necessárias para criar um usuário, organização, ambiente e host virtual.

Por exemplo, você cria:

  • Um usuário de sua escolha para atuar como administrador da organização
  • Uma organização chamada example
  • Um ambiente na organização chamado prod
  • Um host virtual no ambiente chamado default que permite o acesso HTTP na porta 9.001
  • Um alias de host do nome DNS usado para acessar o roteador, ou o endereço IP do roteador e porta do host virtual no formato IP:9001.

Depois, é possível adicionar quantas organizações, ambientes e hosts virtuais você quiser e uma versão local do Edge. Confira mais informações em:

Hosts virtuais são abertos no roteador de borda. Portanto, você precisa garantir que a porta especificado para o host virtual está aberto no roteador. É possível usar um comando no formulário abaixo para abrir uma porta:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT --verbose

Depois de executar esse comando, você pode acessar as APIs usando um URL no formato:

http://<router-ip>:9001/{proxy-base-path}/{resource-path}

Normalmente, você não publica suas APIs para clientes com um endereço IP e o número da porta. Em vez disso, defina uma entrada DNS para o roteador e a porta. Exemplo:

http://myAPI.myCo.com/{proxy-base-path}/{resource-path}

Ao definir a entrada DNS, você também deve criar um host virtual com um alias de host que corresponde ao nome de domínio da entrada DNS. No exemplo acima, você especificaria um alias de host. do myAPI.myCo.com ao criar o host virtual.

Sobre aliases de host e nomes DNS

Uma propriedade definida para um host virtual é o alias do host. O alias do host é normalmente é o nome DNS do host virtual. A forma como você define o alias de host depende do tipo do Instalação da borda: nuvem ou nuvem privada.

Aliases de host e Nomes DNS no Edge para o Cloud

No Edge for the Cloud, quando você cria uma organização de Edge pela primeira vez, a Apigee cria dois ambientes (test e prod), dois hosts virtuais em cada ambiente (padrão e seguro), e os registros DNS de cada host virtual.

O alias dos hosts virtuais contém o nome da organização e do ambiente. Portanto, uma solicitação por um host virtual tem o seguinte formato:

  • http://{org-name}-prod.apigee.net/{proxy-base-path}/{resource-path}
  • https://{org-name}-prod.apigee.net/{proxy-base-path}/{resource-path}
  • http://{org-name}-test.apigee.net/{proxy-base-path}/{resource-path}
  • https://{org-name}-test.apigee.net/{proxy-base-path}/{resource-path}

Normalmente, convém criar hosts virtuais que usem seu nome de domínio, em vez de usar domínio apigee.net padrão. Afazeres Portanto, crie primeiro sua própria entrada DNS e seu registro CNAME.

A figura abaixo mostra uma configuração típica de como o Edge processa uma solicitação de API:

Neste exemplo:

  • api.acme.com é o nome de domínio desejado.
  • Você define uma entrada DNS e um registro CNAME para apontar api.acme.com para acme-prod.apigee.net.
  • A solicitação contém o cabeçalho Host que o roteador usa para determinar o host virtual que lida com a solicitação.

Neste exemplo, você especifica as seguintes informações em uma definição de host virtual:

  • nome = myvhost
  • alias do host = apis.acme.com
  • porta: 443
  • Ativar acesso TLS

Consulte Como configurar hosts virtuais para a nuvem para mais informações.

Aliases de host e nomes DNS no Edge para nuvem privada

Assim como no Edge for the Cloud, você cria hosts virtuais que usam seu próprio nome de domínio para o host alias. Em seguida, crie sua própria entrada DNS e seu registro CNAME para acessar esses hosts virtuais.

Uma das diferenças entre nuvem e nuvem privada é que, no Cloud Apigee, criados automaticamente para suas organizações, no formato:

  • name=default: http://{org-name}-{env-name}.apigee.net (porta do roteador 80)
  • name=secure: https://{org-name}-{env-name}.apigee.net (porta do roteador 443)

No Edge para a nuvem privada, você precisa criar as entradas DNS para o endereço IP e a porta do roteador.

Por exemplo, especifique essas informações em uma definição de host virtual:

  • nome = myvhost
  • alias do host = apis.acme.com
  • porta: 9001
  • Ativar acesso TLS

A figura abaixo mostra uma configuração típica de como o Edge processa uma solicitação de API:

Neste exemplo:

  • api.acme.com é o nome de domínio desejado.
  • Você define uma entrada DNS e um registro CNAME para apontar api.acme.com para o IP e a porta do roteador.
  • A solicitação contém o cabeçalho Host que o roteador usa para determinar o host virtual que lida com a solicitação.

Consulte Como configurar hosts virtuais para a nuvem privada para mais informações.

Aliases de host e caracteres curinga

Você pode incluir o "*" caractere curinga no alias do host. O "*" caractere curinga pode ser apenas no início (antes do primeiro ".") do alias de host e não podem ser misturados com outros caracteres.

Este é um exemplo de um alias de host válido usando um caractere curinga:

*.example.com

Os exemplos a seguir são inválidos:

  www.*.example.com
  w*.example.com

O uso de um caractere curinga em um alias de host virtual permite Os proxies de API tratam chamadas endereçadas a vários subdomínios, como alpha.example.com, beta.example.com ou live.example.com O uso de um alias curinga também ajuda a usar menos hosts por ambiente para permanecer dentro do product limites, já que um host virtual com um caractere curinga conta como apenas um host virtual.

O certificado TLS do host virtual precisa ter um caractere curinga correspondente no nome CN do certificado. Por exemplo, *.example.com.

Sobre as propriedades do host virtual

No Edge, um host virtual é representado por um objeto XML. Por exemplo, o seguinte objeto XML define um host virtual:

<VirtualHost name="vhostName">
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <!-- Private Cloud only -->
        <Interface>interfaceName</Interface>
    <Port>portNumber</Port>
    <BaseURL>http://myCo.com<</BaseUrl>
    <OCSPStapling>off</OCSPStapling>
    <RetryOptions/>
   <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
    </SSLInfo>
    <Properties>
        <Property name="proxy_read_timeout">timeout</Property>
        <Property name="keepalive_timeout">timeout</Property>
        <Property name="proxy_request_buffering">onOff</Property>
        <Property name="proxy_buffering">onOff</Property>
        <Property name="ssl_protocols">protocolList</Property>
        <Property name="ssl_ciphers">cipherList</Property>
    </Properties>
</VirtualHost>

A lista de propriedades que podem ser definidas depende se você está usando o Edge para o Cloud ou não ou Edge para a nuvem privada. Se você estiver usando o Edge para a nuvem privada, a lista de propriedades disponíveis também dependem da sua versão do Edge. Para obter uma descrição completa de todas as propriedades de um host virtual, consulte Referência da propriedade de host virtual.

Para mais informações sobre como criar hosts virtuais para sua versão específica do Edge, consulte: