Resposta HTTP 304 na sessão de rastreamento

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

Sintoma

No Edge para a 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 êxito, como HTTP 200. No entanto, a janela de rastreamento na IU do Edge exibe uma resposta HTTP 304 e nenhum dado de rastreamento é coletado.

Causas possíveis

No Edge para a nuvem privada, a IU do Edge está tentando 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 IU do Edge é co-hospedada com outros serviços internos, um usuário mal-intencionado pode usar a ferramenta de rastreamento indevidamente para fazer solicitações a serviços por meio de um endereço IP privado, como localhost ou 127.0.0.1.

Em um ambiente de produção, você normalmente mantém o padrão como está para evitar que os usuários possam rastrear um endereço IP particular. Por exemplo, é assim que a versão pública da IU do Edge é implantada.

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

Observação : a prática recomendada é manter o padrão como está para evitar o acesso de traces a endereços IP particulares, mesmo em um ambiente de desenvolvimento/teste, a menos que você precise ativá-lo.

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

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

  • Endereço de loopback (127.0.0.1 ou localhost)
  • Endereços site-local (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 localhost)

Por exemplo, o comando curl a seguir faz uma chamada para um proxy de API usando o endereço IP 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 privados para o Edge para a 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 posteriormente o rastreamento de solicitações pela interface por meio de endereços IP particulares, edite ui.properties para definir a propriedade como false e reinicie a interface do Edge.

Para mais informações, consulte Como permitir o acesso da IU de borda a endereços IP locais.