Referência da propriedade do host virtual

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

Representação do host virtual

O objeto XML usado para definir um host virtual é baseado na sua versão do Edge: nuvem ou nuvem privada.

Se você for um cliente de nuvem privada, use o XML correto para sua versão do Edge.

Nuvem e nuvem privada 4.17.01 e posterior

<VirtualHost name="vhostName">
    <Port>portNumber</Port>
    <BaseUrl>http://myCo.com</BaseUrl>
    <OCSPStapling>offOn</OCSPStapling>
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <!-- Private Cloud only -->
        <Interface>interfaceName</Interface>
    </Interfaces>
    <RetryOptions>
        <RetryOption>option</RetryOption>
    </RetryOptions>
    <ListenOptions>
        <ListenOption>option</ListenOption>
    </ListenOptions>
    <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
    </SSLInfo>
    <!-- UseBuiltInFreeTrialCert is for Edge Cloud only -->
    <UseBuiltInFreeTrialCert>trueFalse</UseBuiltInFreeTrialCert>
    <PropagateTLSInformation>
        <!-- PropagateTLSInformation is Alpha in the Cloud only -->
        <ConnectionProperties>trueFalse</ConnectionProperties>
        <ClientProperties>trueFalse</ClientProperties>
    </PropagateTLSInformation>
    <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>
        <!-- ssl_protocols is Private Cloud only -->
        <Property name="ssl_protocols">protocolList</Property>
        <Property name="ssl_ciphers">cipherList</Property>
    </Properties>
</VirtualHost>

Nuvem privada 4.16.01 a 4.16.09

<VirtualHost name="vhostName">
    <Port>portNumber</Port>
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <Interface>interfaceName</Interface>
    </Interfaces>
    <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
    </SSLInfo>
</VirtualHost>

Nuvem privada 4.15.07 e anteriores

<VirtualHost name="vhostName">
    <Port>portNumber</Port>
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <Interface>interfaceName</Interface>
    </Interfaces>
    <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>keystore</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>truststore</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
        <Ciphers>
             <Cipher>cipher</Cipher>
             <Cipher>cipher</Cipher>
         </Ciphers>
         <Protocols>
             <Protocol>protocol</Protocol>
             <Protocol>protocol</Protocol>
         </Protocols>
    </SSLInfo>
</VirtualHost>

Propriedades de configuração do host virtual

A tabela a seguir lista as propriedades usadas para configurar um host virtual:

Propriedades Descrição Padrão Obrigatório
VirtualHost

Especifica o nome do host virtual. Use esse nome para fazer referência ao host virtual ao configurar um proxy de API.

Os caracteres que você pode usar no atributo de nome estão restritos a: A-Z0-9._\-$%.

Nenhum Sim
Porta

Especifica o número da porta usada pelo host virtual. Verifique se a porta está aberta no roteador de borda.

Se você especificar uma porta em um elemento hostalias, o número da porta especificado por <Port> precisará corresponder a ela.

Para o Google Cloud: é preciso especificar a porta 443 ao criar um host virtual. Se omitida, a porta será definida como 443 por padrão. Se você tiver um host virtual que use uma porta diferente da 443, não será possível alterá-la.

Para versões da nuvem privada 4.16.01 a 4.17.05:ao criar um host virtual, especifique a porta do roteador usada por ele. Por exemplo, porta 9001. Por padrão, o roteador é executado como o usuário "apigee", que não tem acesso a portas com privilégios, normalmente as portas 1024 e anteriores. Para 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.

Para versões de nuvem privada anteriores à 4.16.01:um roteador pode detectar apenas uma conexão HTTPS por host virtual, em uma porta específica, com o certificado especificado. Portanto, vários hosts virtuais não podem usar o mesmo número de porta se o término do TLS ocorrer no roteador na porta especificada.

Nenhum Sim
BaseUrl Modifica o URL exibido pela interface do Edge para um proxy de API implantado no host virtual. Útil quando você tem um balanceador de carga externo na frente dos roteadores de borda. Para mais informações, consulte Como configurar o acesso TLS a uma API para a nuvem privada.

O valor de BaseUrl precisa incluir o protocolo (por exemplo, "http://" ou "https://").

Nenhum Não
OCSPStapling

Um cliente do protocolo de status de certificado on-line (OCSP, na sigla em inglês) envia uma solicitação de status a um participante do OCSP para determinar se o certificado TLS é válido. A resposta indica se o certificado TLS é válido e não foi revogado.

Quando ativado, o stapling de OCSP permite que o Edge, agindo como o servidor TLS para o TLS unidirecional, consulte o participante do OCSP diretamente e armazene a resposta em cache. Em seguida, o Edge retorna essa resposta para o cliente TLS ou a gram como parte do handshake de TLS. Consulte Ativar grampos OCSP no seu servidor para mais informações.

O TLS precisa estar ativado para ativar o grampo OCSP. Defina como on para ativar. O valor padrão é off.

desativado Não
HostAliases
HostAlias

O nome DNS visível publicamente do host virtual no roteador, incluindo o número da porta. A combinação do nome do alias do host e do número da porta para o host virtual precisa ser exclusiva para todos os hosts virtuais na instalação do Edge. Isso significa que vários hosts virtuais poderão usar o mesmo número de porta se tiverem aliases de host diferentes.

Crie uma entrada DNS e um registro CNAME que correspondam ao alias do host. O alias do host precisa corresponder à string transmitida pelo cliente no cabeçalho Host.

O número da porta em HostAlias é opcional. Se a porta for especificada como parte do alias do host, será preciso especificar a mesma porta usando o elemento <Port>. Também é possível especificar dois elementos HostAlias, um com o número da porta e outro sem.

É possível ter várias definições de HostAlias na mesma definição de host virtual, correspondentes a várias entradas DNS para o host virtual, mas não para várias portas. Se você quiser várias portas, crie diversas definições de host virtual com portas diferentes.

Você pode incluir o caractere curinga "*" no alias de host. O caractere curinga "*" pode estar apenas no início (antes do primeiro ".") do alias de host e não pode ser combinado com outros caracteres. Por exemplo: *.example.com O certificado TLS do host virtual precisa ter um caractere curinga correspondente no nome CN do certificado. Por exemplo, *.example.com. O uso de um caractere curinga em um alias de host virtual permite que os proxies da API processem chamadas endereçadas a vários subdomínios, como alpha.example.com, beta.example.com ou live.example.com. O uso de um alias com caractere curinga também ajuda a usar menos hosts virtuais por ambiente para permanecer dentro dos limites do produto, já que um host virtual com caractere curinga conta como apenas um.

No Cloud: se você tiver um host virtual que use uma porta diferente da 443, não será possível adicionar ou remover um alias de host.

Para a nuvem privada: se você estiver configurando o alias do host usando os endereços IP dos roteadores, e não as entradas do DNS, adicione um alias de host separado para cada roteador, especificando o endereço IP de cada roteador e a porta do host virtual.

Nenhum Sim
Interfaces Disponível apenas no Edge para nuvem privada.
Interface

Especifica as interfaces de rede a que você quer vincular o port. Se você omitir esse elemento, a porta será vinculada a todas as interfaces.

Por exemplo, para especificar a vinculação da porta apenas a en0:

<Interfaces>
  <Interface>en0</Interface>
</Interfaces>

Determine as interfaces disponíveis no sistema executando o comando "ifconfig -a".

Nenhum Todas as interfaces
RetryOptions Disponível para o Edge Cloud e a nuvem privada 4.18.01 e mais recentes.
RetryOption

Configure como o roteador reage a esse host virtual quando o processador de mensagens fica inativo.

É possível especificar diversos valores usando <RetryOption>. Os valores válidos incluem:

off Desativa a nova tentativa e o host virtual retorna um código de falha mediante uma solicitação.
http_599 (Padrão) Se o roteador receber uma resposta HTTP 599 do processador de mensagens, ele encaminha a solicitação ao próximo processador de mensagens.

HTTP 599 é um código de resposta especial gerado por um processador de mensagens quando ele está sendo encerrado. O processador de mensagens tenta concluir todas as solicitações existentes, mas, para todas as novas solicitações, ele responde com HTTP 599 para sinalizar ao roteador que é preciso repetir a solicitação no próximo processador de mensagens.

error Se um erro ocorreu ao estabelecer uma conexão com o processador de mensagens, passando uma solicitação a ele ou lendo o cabeçalho de resposta a partir dele, o roteador encaminha a solicitação para o próximo processador de mensagens.
timeout Se um tempo limite for atingido ao estabelecer uma conexão com o processador de mensagens, passando uma solicitação a ele ou lendo o cabeçalho de resposta a partir dele, o roteador encaminhará a solicitação para o próximo processador de mensagens.
invalid_header Se o processador de mensagens retornou uma resposta vazia ou inválida, o roteador encaminha a solicitação ao próximo processador de mensagens.
http_XXX Se o processador de mensagens retornou uma resposta com o código HTTP XXX, o roteador encaminha a solicitação para o próximo processador de mensagens.

Se você especificar diversos valores, o roteador usará um OR lógico para combiná-los.

Exemplo:

<RetryOptions>
  <RetryOption>http_599</RetryOption>
  <RetryOption>error</RetryOption>
  <RetryOption>timeout</RetryOption>
  <RetryOption>invalid_header</RetryOption>
</RetryOptions>
ListenOptions Disponível para a nuvem privada 4.18.01 e mais recentes e para o Edge Cloud fazendo uma solicitação ao suporte do Apigee Edge.
ListenOption

Se você usar um ELB no modo de passagem TCP para gerenciar solicitações aos roteadores de borda, o roteador tratará o endereço IP do ELB como o IP do cliente, e não como o IP real do cliente. Se o roteador exigir o IP do cliente verdadeiro, ative proxy_protocol no ELB para que ele transmita o IP do cliente no pacote TCP. No roteador, você também precisa definir o <ListenOption> no host virtual como proxy_protocol. Como o ELB está no modo de passagem TCP, você normalmente encerra o TLS no roteador. Portanto, você geralmente só configura o host virtual para usar proxy_protocol quando também o configura para usar TLS.

O valor padrão de <ListenOption> é uma string vazia.

Exemplo:

<ListenOptions>
  <ListenOption>proxy_protocol</ListenOption>
</ListenOptions>

Para cancelar a definição de <ListenOption> posteriormente, atualize o host virtual e omita a tag <ListenOptions> da atualização.

SSLInfo
Ativado

Ativa o TLS/SSL unidirecional. É preciso ter definido um keystore que contém o certificado e a chave privada.

Para o Google Cloud: você precisa ter um certificado assinado por uma entidade confiável, como a RecyclerView ou a VeriSign. Não é possível usar um certificado autoassinado ou certificados folha assinados por uma CA autoassinado.

No Cloud: se o host virtual atual estiver configurado para usar uma porta diferente da 443, não será possível mudar a configuração do TLS. Isso significa que não é possível alterar a configuração do TLS de ativada para desativada nem de desativada para ativada.

false Não
ClientAuthEnabled Ativa o TLS bidirecional ou de cliente entre o Edge (servidor) e o app (cliente) que faz a solicitação. A ativação do TLS bidirecional exige que você configure um truststore no Edge que contenha o certificado do cliente TLS. false Não
KeyStore

O nome do keystore no Edge.

A Apigee recomenda que você use uma referência para especificar o nome do keystore para alterar o keystore sem precisar reiniciar os roteadores. Consulte Opções para configurar o TLS para mais informações.

Nenhum Sim, se a opção "Ativado" for verdadeira
KeyAlias O alias especificado quando você fez upload do certificado e da chave privada no keystore. Especifique o nome do alias literalmente. Não use uma referência. Consulte Opções para configurar o TLS para mais informações. Nenhum Sim, se a opção "Ativado" for verdadeira
TrustStore

O nome do truststore no Edge que contém o certificado ou a cadeia de certificados usado para o TLS bidirecional. Obrigatório se <ClientAuthEnabled> for verdadeiro.

A Apigee recomenda que você use uma referência para especificar o nome do truststore. Assim, é possível alterar o truststore sem precisar reiniciar os roteadores. Consulte Opções para configurar o TLS para mais informações.

Nenhum Não
IgnoreValidationErrors

Se verdadeiro, especifica para ignorar erros de certificado TLS. É semelhante à opção "-k" para cURL.

Essa opção é válida ao configurar o TLS para servidores de destino e endpoints de destino, assim como ao configurar hosts virtuais que usam TLS bidirecional.

Quando usado com um endpoint de destino/servidor de destino, se o sistema de back-end usar SNI e retornar um certificado com um nome distinto (DN, na sigla em inglês) de assunto que não corresponda ao nome do host, não será possível ignorar o erro e a conexão falha.

false Não
Criptografia

Apenas para o Edge para nuvem privada versão 4.15.07 e anteriores.

Especifica as criptografias compatíveis com o host virtual. Se nenhuma criptografia for especificada, todas as criptografias disponíveis para a JVM serão permitidas.

Para restringir criptografias, adicione estes elementos:

<Ciphers>
  <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA</Cipher>
  <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256</Cipher>
</Ciphers>
Todos têm suporte da JVM Não
Protocolos

Apenas para o Edge para nuvem privada versão 4.15.07 e anteriores.

Especifica os protocolos compatíveis com o host virtual. Se nenhum protocolo for especificado, todos os protocolos disponíveis para a JVM serão permitidos.

Para restringir protocolos, adicione os seguintes elementos:

<Protocols>
  <Protocol>TLSv1</Protocol>
  <Protocol>TLSv1.2</Protocol>
  <Protocol>SSLv2Hello</Protocol>
</Protocols>
Todos têm suporte da JVM Não
UseBuiltInFreeTrialCert Disponível apenas para o Edge Cloud.
UseBuiltInFreeTrialCert

Se você tiver uma conta paga do Edge para o Cloud e ainda não tiver um certificado e uma chave TLS, poderá criar um host virtual que usa o certificado e a chave de avaliação sem custo financeiro da Apigee. Isso significa que é possível criar o host virtual sem primeiro criar um keystore.

O certificado de avaliação sem custo financeiro da Apigee está definido para um domínio de *.apigee.net. Portanto, o <HostAlias> do host virtual também precisa estar no formato *.apigee.net.

Consulte Como definir um host virtual que usa o certificado e a chave de avaliação sem custo financeiro da Apigee.

false Não
PropagateTLSInformation Disponível na versão Alfa apenas para o Edge Cloud.
ConnectionProperties

Ativa a captura de informações de conexão TLS pela borda. Essas informações ficam disponíveis como variáveis de fluxo em um proxy de API. Para saber mais, consulte Como acessar informações de conexão TLS em um proxy de API.

false Não
ClientProperties

Ativa a captura de detalhes do certificado do cliente capturados pelo Edge em TLS bidirecional. Essas informações ficam disponíveis como variáveis de fluxo em um proxy de API. Para saber mais, consulte Como acessar informações de conexão TLS em um proxy de API.

false Não
Propriedades Disponível para o Edge Cloud e para a nuvem privada 4.17.01 e mais recentes.
proxy_read_timeout

Define o tempo limite, em segundos, entre os processadores de mensagens e o roteador. O roteador descarta a conexão e retorna uma resposta HTTP 504 se não receber uma resposta do processador de mensagens antes do fim desse período.

O valor de proxy_read_timeout deve ser maior que o valor de tempo limite de destino usado pelo processador de mensagens. Isso garante que o roteador não atinja o tempo limite antes que o processador de mensagens tenha tempo de retornar uma resposta. O tempo limite padrão do processador de mensagens é de 55 segundos e 55.000 milissegundos, conforme definido pelo token conf_http_HTTPTransport.io.timeout.millis para o processador de mensagens.

57 Não
keepalive_timeout

Define o tempo limite, em segundos, entre o cliente e o roteador quando o cliente faz uma solicitação que contém o cabeçalho Keep-Alive. Ele mantém a conexão aberta até o fim do período.

O roteador não encerrará a conexão se estiver aguardando uma resposta do processador de mensagens. O tempo limite começa somente depois que o roteador retorna a resposta ao cliente.

65 Não
ssl_ciphers

Define as criptografias aceitas pelo host virtual, substituindo as criptografias padrão definidas no roteador.

Especifique uma lista de criptografia delimitada por dois-pontos no formato:

<Property name="ssl_ciphers">HIGH:!aNULL:!MD5:!DH+3DES:!kEDH;</Property>

Para informações sobre a sintaxe e os valores permitidos por esse token, consulte https://www.openssl.org/docs/man1.0.2/man1/ciphers.html. Esse token usa os nomes de criptografia OpenSSL, como AES128-SHA256, e não os nomes de criptografia Java/JSSE, como TLS_RSA_WITH_AES_128_CBC_SHA256.

ALTA:!aNULL:

!MD5:

!DH+3DES:

!kEDH

Não
ssl_protocols

Disponível apenas no Edge para nuvem privada.

Define os protocolos TLS compatíveis com o host virtual, como uma lista delimitada por espaço, substituindo os protocolos padrão definidos no roteador.

Observação: se dois hosts virtuais compartilharem a mesma porta, eles precisarão definir ssl_protocols para os mesmos protocolos. Ou seja, os hosts virtuais que compartilham a mesma porta precisam oferecer suporte aos mesmos protocolos.

Especifique uma lista de protocolos TLS delimitada por espaços, no formato:

<Property name="ssl_protocols">TLSv1 TLSv1.2</Property>
TLSv1 TLSv1.1 TLSv1.2 Não
proxy_request_buffering

Ativa (ativa) ou desativa (desativa) o armazenamento em buffer do corpo da solicitação. Quando esse recurso está ativado, o roteador armazena todo o corpo da solicitação em buffer antes de enviá-la ao processador de mensagens. Se houver um erro, o roteador pode tentar novamente com outro processador de mensagens.

Se desativado, o armazenamento em buffer será desativado e o corpo da solicitação será enviado para o processador de mensagens imediatamente à medida que for recebida. Se houver um erro, o roteador não tentará enviar novamente a solicitação para outro processador de mensagens.

ativado Não
proxy_buffering Ativa (ativa) ou desativa (desativa) o armazenamento em buffer da resposta. Quando o armazenamento em buffer está ativado, o roteador armazena a resposta em buffer. Quando o armazenamento em buffer está desativado, a resposta é transmitida ao cliente de maneira síncrona, imediatamente à medida que é recebida pelo roteador. ativado Não