Estás viendo la documentación de Apigee Edge.
Ir a la
documentación de Apigee X. info
En la comunicación cliente-servidor, un servidor responde con el código de estado HTTP 405
Method Not Allowed si el
método de solicitud HTTP que presenta el cliente es conocido por el servidor,
pero no es compatible con el recurso de destino. Del mismo modo, en Apigee Edge, el servidor de backend puede
responder con el código de estado HTTP 405 Method Not Allowed.
Apigee Edge espera que el servidor de backend envíe respuestas 405 Method Not Allowed con la lista de métodos permitidos en el encabezado Allow, según la especificación
RFC 7231, sección 6.5.5: 405 Método no permitido.
El encabezado Allow se debe enviar en el siguiente formato:
Allow: HTTP_METHODS
Por ejemplo, si tu servidor de backend permite los métodos GET, POST y
HEAD, debes asegurarte de que el encabezado Allow los contenga
de la siguiente manera:
Allow: GET, POST, HEAD
Si el servidor de backend no envía el encabezado Allow con el código de estado HTTP
405 Method Not Allowed, Apigee muestra el código de estado HTTP 502 Bad
Gateway con el código de error protocol.http.Response405WithoutAllowHeader a la
aplicación cliente. La solución recomendada para abordar este error es corregir el servidor de backend para que cumpla con la especificación
RFC 7231, sección 6.5.5: 405 Método no permitido o usar el manejo de fallas para responder con el código de estado HTTP 405 Method Not Allowed incluido el Allow encabezado como se explica en la guía de solución de problemas
502 Bad Gateway - Response 405 without Allow header.
Sin embargo, en algunos casos excepcionales, es posible que no puedas corregir tu backend o modificar tu proxy de API para abordar este problema de inmediato.
En esos casos, puedes configurar el encabezado de permiso de omisión para la 405 propiedad
HTTP.ignore.allow_header.for.405 a nivel del
Message Processor de forma temporal. Si configuras esta propiedad como true, se evita que Apigee
muestre la respuesta 502 Bad Gateway a las aplicaciones cliente, incluso si el
servidor de backend envía el código de estado HTTP 405 Method Not Allowed sin el
encabezado Allow.
Una vez que puedas corregir tu servidor de backend para enviar el código de estado HTTP 405 Method
Not Allowed con el encabezado Allow, puedes revertir la propiedad
HTTP.ignore.allow_header.for.405 a su valor predeterminado false.
Antes de comenzar
Antes de usar los pasos de este documento, asegúrate de comprender los siguientes temas:
- Lee el manual - 502 Bad Gateway - response 405 without Allow header.
- Si no estás familiarizado con la configuración de propiedades para Edge para la nube privada, lee Cómo configurar Edge.
Configura el encabezado de permiso de omisión para la propiedad 405 como true en Message Processors
En Apigee Edge, la propiedad HTTP.ignore.allow_header.for.405 se establece en
false de forma predeterminada. Esto permite que Apigee Edge muestre 502 Bad
Gateway con el código de error protocol.http.Response405WithoutAllowHeader a las
aplicaciones cliente si el servidor de backend envía el código de estado HTTP 405 Method Not
Allowed sin el encabezado Allow. Si deseas evitar que Apigee Edge
envíe 502 Bad Gateway a las aplicaciones cliente, debes establecer el valor de
la propiedad HTTP.ignore.allow_header.for.405 como true en los Message
Processors.
En esta sección, se explica cómo configurar la propiedad
HTTP.ignore.allow_header.for.405 como true en los
Message Processors, con el token según la sintaxis que se describe en
Cómo configurar Edge.
-
En la máquina de Message Processor, abre el siguiente archivo en un editor. Si aún no existe, créalo.
/opt/apigee/customer/application/message-processor.properties
Por ejemplo, para abrir el archivo con vi, ingresa lo siguiente:
vi /opt/apigee/customer/application/message-processor.properties
- Agrega una línea en el siguiente formato al archivo de propiedades:
conf_http_HTTP.ignore.allow_header.for.405=true
- Guarda los cambios.
- Asegúrate de que el archivo de propiedades sea propiedad del usuario
apigee, como se muestra a continuación:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Reinicia el Message Processor como se muestra a continuación:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Si tienes más de un Message Processor, repite los pasos anteriores en todos los Message Processors.
Verifica que el encabezado de permiso de omisión para la propiedad 405 esté configurado como true en Message Processors
En esta sección, se explica cómo verificar que la propiedad
HTTP.ignore.allow_header.for.405 se haya actualizado correctamente a true
en los Message Processors.
Aunque uses el token conf_http_HTTP.ignore.allow_header.for.405 para actualizar el valor de la propiedad en el Message Processor, debes verificar si la propiedad real HTTP.ignore.allow_header.for.405 se estableció como true.
- En la máquina de Message Processor, busca la propiedad
HTTP.ignore.allow_header.for.405en el directorio/opt/apigee/edge-message-processor/confy verifica si se estableció comotruecomo se muestra a continuación:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Si la propiedad se actualiza correctamente en el Message Processor, el comando anterior
debería mostrar el valor de la propiedad
HTTP.ignore.allow_header.for.405comotrueen el archivohttp.properties, como se muestra a continuación:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- Si aún ves el valor de la propiedad
HTTP.ignore.allow_header.for.405comofalseverifica que hayas seguido correctamente todos los pasos descritos en Configura el encabezado de permiso de omisión para la propiedad 405 como true en Message Processors. Si omitiste algún paso, repite todos los pasos correctamente correctamente. - Si aún no puedes modificar la propiedad
HTTP.ignore.allow_header.for.405, comunícate con el equipo de asistencia de Apigee Edge.
Configura el encabezado de permiso de omisión para la propiedad 405 como false en Message Processors
En esta sección, se explica cómo configurar la propiedad
HTTP.ignore.allow_header.for.405 en su valor predeterminado false
en el Message Processor, con el token según la sintaxis que se describe en
Cómo configurar Edge.
- Verifica si la propiedad
HTTP.ignore.allow_header.for.405se modificó atrue. Para ello, busca esta propiedad en el/opt/apigee/edge-message-processor/confdirectory y verifica su valor con el siguiente comando:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Si la propiedad se establece como
trueen el Message Processor, el comando anterior debería mostrar el valor de la propiedadHTTP.ignore.allow_header.for.405comotrueen el archivohttp.propertiescomo se muestra a continuación:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- Si el comando anterior muestra que la propiedad
HTTP.ignore.allow_header.for.405se establece comofalse(valor predeterminado), no tienes que hacer nada más. Es decir, omite los siguientes pasos. - Si la propiedad
HTTP.ignore.allow_header.for.405se establece comotrue, sigue los siguientes pasos para volver a su valor predeterminadofalse. En la máquina de Message Processor, abre el siguiente archivo en un editor:
/opt/apigee/customer/application/message-processor.properties
Por ejemplo, para abrir el archivo con vi, ingresa lo siguiente:
vi /opt/apigee/customer/application/message-processor.properties
- Quita la siguiente línea del archivo de propiedades:
conf_http_HTTP.ignore.allow_header.for.405=true
- Guarda los cambios.
- Asegúrate de que el archivo de propiedades sea propiedad del usuario
apigee, como se muestra a continuación:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Reinicia el Message Processor como se muestra a continuación:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Si tienes más de un Message Processor, repite los pasos anteriores en todos los Message Processors.
Verifica que el encabezado de permiso de omisión para la propiedad 405 esté configurado como false en Message Processors
En esta sección, se explica cómo verificar que la propiedad
HTTP.ignore.allow_header.for.405 se haya actualizado correctamente a false
en los Message Processors.
Aunque uses el token
conf_http_HTTP.ignore.allow_header.for.405 para actualizar el valor en el Message
Processor, debes verificar si la propiedad real HTTP.ignore.allow_header.for.405
se estableció como false.
- En la máquina de Message Processor, busca la propiedad
HTTP.ignore.allow_header.for.405en el/opt/apigee/edge-message- processor/confdirectorio y verifica si se estableció comofalsecomo se muestra a continuación:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Si la propiedad se actualiza correctamente en el Message Processor, el comando anterior
debería mostrar el valor de la propiedad
HTTP.ignore.allow_header.for.405comofalseen el archivohttp.properties, como se muestra a continuación:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
- Si aún ves el valor de la propiedad
HTTP.ignore.allow_header.for.405comotrue, verifica que hayas seguido correctamente todos los pasos descritos en Configura el encabezado de permiso de omisión para la propiedad 405 como false en Message Processors. Si omitiste algún paso, repite todos los pasos correctamente. - Si aún no puedes modificar la propiedad
HTTP.ignore.allow_header.for.405, comunícate con el equipo de asistencia de Apigee Edge.