Respuesta HTTP 304 en la sesión de registro

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

Síntoma

En Edge para la nube privada, cuando se realiza el seguimiento de una API en la IU de Edge, verás una respuesta HTTP 304 en la columna Status de la ventana de seguimiento:

Mensajes de error

No hay mensajes de error. La llamada del proxy a la API en realidad muestra una respuesta correcta, como HTTP 200. Sin embargo, la ventana de seguimiento de 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 desde una dirección IP privada.

La herramienta de seguimiento de la IU de Edge puede enviar una solicitud a la API a cualquier URL. En una situación de implementación en la que la IU de Edge se aloja en conjunto con otros servicios internos, un usuario malicioso podría hacer un uso inadecuado de 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.

Por lo general, en un entorno de producción, no se modifica la configuración predeterminada para evitar que los usuarios puedan rastrear una dirección IP privada. Por ejemplo, así es como se implementa la versión pública de la IU de Edge.

Sin embargo, para un entorno interno de desarrollo o pruebas, puedes anular esta configuración predeterminada a fin de permitir que tus desarrolladores de 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, no debes dejar el valor predeterminado para evitar el acceso de seguimiento a 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: Intento de acceso a un proxy de API mediante una dirección IP privada

De forma predeterminada, la IU de Edge para Edge de la nube privada evita que los usuarios hagan un seguimiento de 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 como localhost)

Por ejemplo, el siguiente comando curl realiza una llamada a un proxy de API mediante una dirección IP 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 mostró resultados satisfactorios.

Resolución

Si deseas permitir que la IU de Edge realice el seguimiento de las direcciones IP privadas de Edge para la nube privada, configura el siguiente token en ui.properties:

conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"

Para configurar esta propiedad, sigue estos pasos:

  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 de “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.

Si más adelante deseas inhabilitar la IU de las solicitudes de seguimiento 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 las direcciones IP locales.