Resposta HTTP 304 na sessão de rastreamento

Você está lendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

Sintoma

No Edge para nuvem privada, ao rastrear uma API na interface do Edge, você verá uma resposta HTTP 304 na coluna Status da janela de rastreamento:

Mensagens de erro

Não há mensagens de erro. A chamada de proxy de API retorna uma resposta de sucesso, como um HTTP 200. No entanto, a janela de rastreamento na interface do Edge mostra uma resposta HTTP 304 e nenhum dado de rastreamento é coletado.

Causas possíveis

No Edge para nuvem privada, a interface do Edge tenta rastrear um proxy de API acessado por um endereço IP particular.

A ferramenta de rastreamento na interface do Edge pode enviar solicitações de API para qualquer URL. Em um cenário de implantação em que a interface do Edge é hospedada em conjunto com outros serviços internos, um usuário mal-intencionado pode usar a ferramenta de rastreamento de maneira inadequada para fazer solicitações a serviços por um endereço IP particular, como localhost ou 127.0.0.1.

Em um ambiente de produção, normalmente você deixa o padrão no estado em que se encontra para impedir que os usuários rastreiem um endereço IP particular. Por exemplo, é assim que a versão pública da interface do Edge é implantada.

No entanto, para um ambiente de desenvolvimento ou teste interno, é possível substituir esse padrão para permitir que os desenvolvedores de API rastreiem qualquer endereço IP. Normalmente, um ambiente de desenvolvimento/teste está atrás de um firewall que não permite acesso público.

Observação: como prática recomendada, deixe o padrão no estado em que se encontra para impedir o acesso de rastreamento a endereços IP particulares, mesmo em um ambiente de desenvolvimento/teste, a menos que você se depare com uma situação em que precise ativá-lo.

Causa: tentativa de acessar um proxy de API por um endereço IP particular

Por padrão, a interface do Edge para Edge para nuvem privada impede que os usuários rastreiem chamadas de API feitas por endereços IP particulares. A lista de endereços IP particulares inclui:

  • Endereço de loopback (127.0.0.1 ou localhost)
  • Endereços locais do site (para IPv4: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
  • Qualquer endereço local (qualquer endereço que seja resolvido para localhost)

Por exemplo, o comando curl a seguir faz uma chamada para um proxy de API usando um endereço IP de 127.0.0.1, que é considerado um endereço IP particular:

curl http://127.0.0.1:9001/myapiproxy

Na janela de rastreamento dessa chamada, você verá uma resposta HTTP 304, mesmo que o comando curl tenha retornado sucesso.

Resolução

Para permitir que a interface do Edge rastreie endereços IP particulares para o Edge para nuvem privada, defina o seguinte token em ui.properties:

conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"

Para definir essa propriedade:

  1. Abra o arquivo ui.properties em um editor. Se o arquivo não existir, crie-o.
    vi /opt/apigee/customer/application/ui.properties
  2. Defina as seguintes propriedades como verdadeiras:
    conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"
  3. Salve as alterações em ui.properties.
  4. Verifique se o arquivo de propriedades pertence ao usuário "apigee":
    chown apigee:apigee /opt/apigee/customer/application/ui.properties
  5. Reinicie a interface do Edge:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

A interface do Edge agora pode acessar endereços IP particulares na ferramenta de rastreamento.

Para desativar o rastreamento de solicitações pela interface por endereços IP particulares, edite ui.properties para definir a propriedade como false e reinicie a interface do Edge.

Para mais informações, consulte Permitir o acesso da interface do Edge a endereços IP locais.