Estás viendo la documentación de Apigee Edge.
  Ve a la
     Documentación de Apigee X. información
Síntoma
    La aplicación cliente obtiene un código de estado HTTP de 502 Bad Gateway con el error
    el código protocol.http.Response405WithoutAllowHeader como respuesta a las llamadas a la API.
  
Mensaje de error
La aplicación cliente obtiene el siguiente código de respuesta:
HTTP/1.1 502 Bad Gateway
Además, puedes observar el siguiente mensaje de error:
{
   "fault":{
      "faultstring":"Received 405 Response without Allow Header",
      "detail":{
         "errorcode":"protocol.http.Response405WithoutAllowHeader"
      }
   }
}Causas posibles
    Este error se produce si el servidor de backend responde con el estado 405 Method Not Allowed.
    sin el encabezado Allow.
  
    Según las especificaciones
    
    RFC 7231, sección 6.5.5: Método no permitido 405, se espera que el servidor de origen
    DEBE generar y enviar un campo de encabezado Allow en una respuesta 405 que contenga un
    Una lista de los métodos admitidos actualmente del recurso de destino De lo contrario, Apigee responde con
    502 Bad Gateway y el código de error protocol.http.Response405WithoutAllowHeader.
| Causa | Descripción | Instrucciones de solución de problemas aplicables para | 
|---|---|---|
| Respuesta 405 sin el encabezado Permitir desde el servidor de backend | El servidor de backend que procesa la solicitud a la API responde con el código de estado 405sin el encabezadoAllow. | Usuarios perimetrales de nubes públicas y privadas | 
Pasos comunes de diagnóstico
Usa una de las siguientes herramientas o técnicas para diagnosticar este error:
Supervisión de API
Para diagnosticar el error con la supervisión de API, haz lo siguiente:
- Accede a la IU de Edge como un usuario con un el puesto adecuado.
- Cambia a la organización en la que quieres investigar el problema.   
- Navega a Analyze > Supervisión de API > Investigar.
- Selecciona el período específico en el que observaste los errores.
- Traza Código de error en Tiempo. 
- Seleccionar una celda que tenga el código de falla - protocol.http.Response405WithoutAllowHeader, como se muestra a continuación:  
- Información sobre el código de falla - protocol.http.Response405WithoutAllowHeaderse muestra a continuación:  
- Haz clic en Ver registros y expande una de las solicitudes fallidas para ver más información.   
- En la ventana Registros, observa los siguientes detalles:
      - Código de estado: 502
- Fuente del error: target
- Código de error: protocol.http.Response405WithoutAllowHeader.
 
- Código de estado: 
- Si la Fault Source es targety el Fault Code esprotocol.http.Response405WithoutAllowHeader, eso indica que el backend servidor respondió con el código de estado405 Method Not Allowedsin elAllow.
Herramienta de seguimiento
Para diagnosticar el error con la herramienta Trace, sigue estos pasos:
- Habilita el 
      de registro y
      - Espera a que se produzca el error 502 Bad Gateway.
- Si puedes reproducir el problema, realiza la llamada a la API para hacerlo.
         502 Bad Gatewayerror
 
- Espera a que se produzca el error 
- Asegúrate de que Show all FlowInfos esté habilitado:   
- Selecciona una de las solicitudes fallidas y examina el seguimiento.
- Navega por las diferentes fases del seguimiento y localiza dónde ocurrió la falla.
- Por lo general, encontrarás el error en un flujo después de la Solicitud enviada al servidor de destino. fase, como se muestra a continuación:   
- Anota el valor del error del seguimiento. - En el seguimiento de ejemplo anterior, se muestra el error como - Received 405 Response without Allow Header. Dado que Apigee emitió el error después de que se envió la solicitud al backend indica que el servidor de backend envió el código de estado de respuesta- 405sin el encabezado- Allow.
- Navega a la fase AX (datos registrados de Analytics) en el seguimiento y haz clic en ella.
- En Detalles de la fase, desplázate hasta la sección Encabezados de error / respuesta. panel y determinar valores de X-Apigee-fault-code y X-Apigee-fault-source como se muestra a continuación:   
- Verás los valores X-Apigee-fault-code y X-Apigee-fault-source como
      protocol.http.Response405WithoutAllowHeaderytarget, respectivamente, que indica que este error se debe a que el backend envió el Código de estado de respuesta405sin el encabezadoAllow.Encabezados de respuesta Valor X-Apigee-fault-code protocol.http.Response405WithoutAllowHeaderX-Apigee-fault-source target
NGINX
Para diagnosticar el error con los registros de acceso de NGINX, haz lo siguiente:
- Si eres un usuario de la nube privada, puedes usar los registros de acceso de NGINX para determinar la
      información clave sobre los errores 502de HTTP.
- Verifica los registros de acceso de NGINX: - /opt/apigee/var/log/edge-router/nginx/ORG~ORG.PORT#_access_log - Dónde: ORG, ORG y PORT# se reemplazan por valores reales. 
- Realiza una búsqueda para ver si hay algún error 502con el código de errorprotocol.http.Response405WithoutAllowHeaderdurante un período específico (si el problema en el pasado) o si todavía hay solicitudes que fallan502
- Si encuentras algún error - 502con el código X-Apigee-fault-code que coincida con valor de- protocol.http.Response405WithoutAllowHeadery, luego, determina el de la fuente X-Apigee-fault-source.- Ejemplo de error 502 del registro de acceso de NGINX:   - La entrada de ejemplo anterior del registro de acceso de NGINX tiene los siguientes valores para X-Apigee- error-code y X-Apigee-fault-source: - Encabezados de respuesta - Valor - X-Apigee-fault-code - protocol.http.Response405WithoutAllowHeader- X-Apigee-fault-source - target
Causa: respuesta 405 sin encabezado Permitir desde el servidor de backend
Diagnóstico
- Determina el código de error y la fuente de errores para 502 Bad Gateway. con la herramienta de seguimiento de APIs o los registros de acceso NGINX, como se explica en Pasos comunes del diagnóstico.
- Si el Código de error es protocol.http.Response405WithoutAllowHeadery La fuente del error tiene el valortarget, esto indica que el servidor backend tiene respondió con un código de estado405sin el encabezadoAllow. Por lo tanto, Apigee responde con502 Bad Gatewaycon un código de error.protocol.http.Response405WithoutAllowHeader
Solución
Usa uno de los siguientes métodos para resolver el problema:
Servidor backend
Opción 1: Corrige el servidor de backend para que envíe un código de estado 405 con el encabezado Allow:
- Asegúrate de que el servidor de backend siempre cumpla con la especificación RFC 7231, sección 6.5.5: Método no permitido 405 y envía con el estado - 405incluyendo la lista de métodos permitidos como parte de un encabezado- Allowcomo se muestra a continuación:- Allow: HTTP_METHODS 
- Por ejemplo, si tu servidor backend permite GET,POSTyHEAD, debes asegurarte de que el encabezadoAllowcontenga de la siguiente manera:Allow: GET, POST, HEAD 
Solución de errores
Opción 2: Usa la administración de errores para enviar el código de estado 405 con el encabezado Allow de tu API proxy:
    Si el servidor de backend muestra el código de estado 405 sin Allow.
    puedes usar el manejo de errores para responder con el código de estado 405 y el
    Allow de tu proxy de API de la siguiente manera:
  
- Crea una política como Política AssignMessage o la política de RiseFault y establece el código de estado en - 405con el encabezado- Allowy una mensaje.- Ejemplo de política de AssignMessage para enviar un error 405 con el encabezado Permitir: - <AssignMessage async="false" continueOnError="false" enabled="true" name="AM-405WithAllowHeader"> <DisplayName>AM-405WithAllowHeader</DisplayName> <Set> <Payload contentType="application/json">{"Specified method is not allowed. Please use one of the methods mentioned in the Allow header."}</Payload> <StatusCode>405</StatusCode> <ReasonPhrase>Method Not Allowed</ReasonPhrase> </Set> <Add> <Headers> <Header name="Allow">GET, POST, HEAD</Header> </Headers> </Add> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage> 
- Crea un - FaultRuleen- TargetEndpoint, que invoque la política. luego de recibir el error- 502con el código de error- protocol.http.Response405WithoutAllowHeader- Ejemplo de configuración de TargetEndpoint que muestra FaultRule: - <TargetEndpoint name="default"> ... <FaultRules> <FaultRule name="405WithoutAllowHeader"> <Step> <Name>AM-405WithAllowHeader</Name> </Step> <Condition>(fault.name = "Response405WithoutAllowHeader")</Condition> </FaultRule> </FaultRules>
- Guarda estos cambios en una revisión nueva del proxy de tu API y, luego, impleméntala.
- Realiza las llamadas a la API y verifica que obtienes el código de estado 405con el EncabezadoAllow.
Configurar propiedad
Opción 3: Configurar la propiedad en Message Processor para evitar que Apigee Edge resultado del error 502
- Si eres un  usuario de la Nube privada, puedes actualizar la propiedad.
      HTTP.ignore.allow_header.for.405atruepara evitar que Apigee Edge generar un error502, incluso si el servidor de backend responde con405código de estado sin el encabezadoAllowcon la guía práctica: Se configura el encabezado de permitir ignorar para la propiedad 405 en Message Processors.
- Si eres un usuario de la nube pública, comunícate con el equipo de asistencia de Apigee Edge
Especificación
    Apigee espera la respuesta 405 Method Not Allowed del servidor de backend junto con
    con el encabezado Allow, según las siguientes especificaciones:
  
| Especificación | |
|---|---|
| RFC 7231, sección 6.5.5: Método no permitido 405 | |
| RFC 7231, sección 7.4.1: Permitir | 
Puntos clave para tener en cuenta
    La solución recomendada es corregir el servidor de backend para enviar el código de estado 405.
    con el encabezado Allow y cumplir con la especificación
    
      RFC 7231, sección 6.5.5: Método no permitido 405.
  
Si aún necesitas asistencia del equipo de asistencia de Apigee, ve a Se debe recopilar información de diagnóstico.
Se debe recopilar información de diagnóstico
Si el problema persiste, incluso después de seguir las instrucciones anteriores, reúne la siguiente información de diagnóstico y, luego, comunícate con el equipo de asistencia de Apigee Edge.
Si eres usuario de la nube pública, proporciona la siguiente información:
- Nombre de la organización
- Nombre del entorno
- Nombre del proxy de API
- Completa el comando curlque se usa para reproducir502 Bad Gatewaycon el código de errorprotocol.http.Response405WithoutAllowHeader
- Archivo de seguimiento de las solicitudes a la API
Si eres un usuario de la Nube privada, proporciona la siguiente información:
- Mensaje de error completo observado para las solicitudes fallidas
- Nombre del entorno
- Paquete de proxy de API
- Archivo de seguimiento de las solicitudes a la API
- Registros de acceso de NGINX - /opt/apigee/var/log/edge-router/nginx/ORG~ORG.PORT#_access_log - Dónde: ORG, ORG y PORT# se reemplazan por valores reales. 
- Registros del sistema del procesador de mensajes
/opt/apigee/var/log/edge-message-processor/logs/system.log