Respuesta HTTP 304 en la sesión de registro

Estás viendo la documentación de Apigee Edge.
Ir a la documentación de Apigee X.
info

Síntoma

En Edge para la nube privada, cuando se rastrea una API en la IU de Edge, se ve una respuesta HTTP 304 en la columna Estado de la ventana de seguimiento:

Mensajes de error

No hay mensajes de error: la llamada al proxy de API en realidad devuelve una respuesta correcta, como un HTTP 200. Sin embargo, la ventana de seguimiento en la IU de Edge muestra una respuesta HTTP 304 y no se recopilan datos de seguimiento.

Causas posibles

En Edge para la nube privada, la IU de Edge intenta rastrear un proxy de API al que se accede mediante una dirección IP privada.

La herramienta de seguimiento en la IU de Edge tiene la capacidad de enviar solicitudes a la API a cualquier URL. En una situación de implementación en la que la IU de Edge se aloja junto con otros servicios internos, un usuario malicioso podría usar de forma incorrecta la herramienta de seguimiento para realizar solicitudes a los servicios a través de una dirección IP privada, como localhost o 127.0.0.1.

En un entorno de producción, por lo general, dejas la configuración predeterminada tal como está para evitar que los usuarios puedan rastrear una dirección IP privada. Por ejemplo, así se implementa la versión pública de la IU de Edge.

Sin embargo, para un entorno de desarrollo o pruebas interno, puedes anular este valor predeterminado para permitir que los desarrolladores de tu API rastreen cualquier dirección IP. Por lo general, un entorno de desarrollo o pruebas se encuentra detrás de un firewall que no permite el acceso público.

Nota: Como práctica recomendada, debes dejar la configuración predeterminada tal como está para evitar el acceso de seguimiento a las direcciones IP privadas, incluso en un entorno de desarrollo o pruebas, a menos que te encuentres en una situación en la que debas habilitarlo.

Causa: Se intenta acceder a un proxy de API a través de una dirección IP privada

De forma predeterminada, la IU de Edge para Edge para la nube privada impide que los usuarios rastreen las llamadas a la API realizadas a través de direcciones IP privadas. La lista de direcciones IP privadas incluye lo siguiente:

  • Dirección de bucle invertido (127.0.0.1 o localhost)
  • Direcciones locales del sitio (para IPv4: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
  • Cualquier dirección local (cualquier dirección que se resuelva en localhost)

Por ejemplo, el siguiente comando curl realiza una llamada a un proxy de API con una dirección IP de 127.0.0.1, que se considera una dirección IP privada:

curl http://127.0.0.1:9001/myapiproxy

En la ventana de seguimiento de esta llamada, verás una respuesta HTTP 304, incluso si el comando curl devolvió un resultado correcto.

Solución

Para habilitar la IU de Edge para rastrear direcciones IP privadas para Edge para la nube privada, configura el siguiente token en ui.properties:

conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"

Para configurar esta propiedad, haz lo siguiente:

  1. Abre el archivo ui.properties en un editor. Si el archivo no existe, créalo.
    vi /opt/apigee/customer/application/ui.properties
  2. Establece las siguientes propiedades en true:
    conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"
  3. Guarda los cambios en ui.properties.
  4. Asegúrate de que el archivo de propiedades sea propiedad del usuario “apigee”:
    chown apigee:apigee /opt/apigee/customer/application/ui.properties
  5. Reinicia la IU de Edge:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

La IU de Edge ahora puede acceder a direcciones IP privadas en la herramienta de seguimiento.

Para inhabilitar más adelante la IU para rastrear solicitudes a través de direcciones IP privadas, edita ui.properties para establecer la propiedad en false y, luego, reinicia la IU de Edge.

Para obtener más información, consulta Cómo permitir el acceso de la IU de Edge a direcciones IP locales.