Estás consultando la documentación de Apigee Edge.
Consulta la
documentación de Apigee X. Información
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 presentó el cliente es conocido por el servidor, pero el recurso de destino no lo admite. De manera similar, 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
debe enviarse 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 a fin de que cumpla con la especificación
RFC 7231, sección 6.5.5: Método no permitido 405, o bien usar el manejo de fallas para responder con el código de estado HTTP 405 Method Not Allowed
, incluido el encabezado Allow
como se explica en la guía de solución de problemas
502 en la guía de solución de problemas sin permiso.
Sin embargo, en algunos casos excepcionales, es posible que no sea posible corregir tu backend ni modificar el proxy de API para solucionar este problema de inmediato.
En esos casos, puedes configurar, de manera temporal, el encabezado de permisos de omisión para la propiedad HTTP.ignore.allow_header.for.405
de 405
a nivel del procesador de mensajes. Configurar esta propiedad como true
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 estés en posición de corregir tu servidor de backend para que envíe 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 seguir los pasos de este documento, asegúrate de comprender los siguientes temas:
- Lee la guía: 502 Bad Gateway - response 405 without Allow header.
- Si no estás familiarizado con la configuración de propiedades para Edge en la nube privada, consulta Cómo configurar Edge.
Configura el encabezado de omisión de la solicitud de permiso para la propiedad 405 como verdadero en Message Processor
En Apigee Edge, la propiedad HTTP.ignore.allow_header.for.405
se establece en false
de forma predeterminada. Esto permite que Apigee Edge muestre el 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 aplicaciones cliente, debes establecer el valor de la propiedad HTTP.ignore.allow_header.for.405
en true
en Message Processor.
En esta sección, se explica cómo configurar la propiedad HTTP.ignore.allow_header.for.405
en true
en Message Processors, mediante el token según la sintaxis descrita 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 con 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 de
apigee
, como se muestra a continuación:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Reinicia 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 ellos.
Verifica que el encabezado de omisión de permisos para la propiedad 405 esté configurado como verdadero en Message Processor
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 Message Processor.
Aunque uses el token conf_http_HTTP.ignore.allow_header.for.405
para actualizar el valor de la propiedad en Message Processor, debes verificar si la propiedad real HTTP.ignore.allow_header.for.405
se estableció en true
.
- En la máquina del procesador de mensajes, busca la propiedad
HTTP.ignore.allow_header.for.405
en el directorio/opt/apigee/edge-message-processor/conf
y verifica si se configuró comotrue
, como 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 Message Processor, el comando anterior debería mostrar el valor de la propiedad
HTTP.ignore.allow_header.for.405
comotrue
en 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.405
comofalse
, verifica si seguiste todos los pasos descritos en Configura correctamente el encabezado para ignorar la opción en la propiedad 405 en Message Processor. Si omitiste algún paso, repite todos los pasos de nuevo de forma correcta. - Si aún no puedes modificar la propiedad
HTTP.ignore.allow_header.for.405
, comunícate con el equipo de asistencia de Apigee Edge.
Configuración del encabezado de omisión de permiso para la propiedad 405 como falso en Message Processor
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 mediante el uso del token según la sintaxis descrita en Cómo configurar Edge.
- Verifica si la propiedad
HTTP.ignore.allow_header.for.405
se modificó atrue
. Para ello, busca esta propiedad en el directorio/opt/apigee/edge-message-processor/conf
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 está configurada como
true
en Message Processor, el comando anterior debería mostrar el valor de la propiedadHTTP.ignore.allow_header.for.405
comotrue
en 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 el comando anterior muestra que la propiedad
HTTP.ignore.allow_header.for.405
está configurada comofalse
(valor predeterminado), no tienes que hacer nada más. Es decir, omite los siguientes pasos. - Si la propiedad
HTTP.ignore.allow_header.for.405
está configurada comotrue
, realiza 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 de
apigee
, como se muestra a continuación:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Reinicia 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 ellos.
Verifica que el encabezado de omisión de permiso para la propiedad 405 esté configurado como falso en Message Processor
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 Message Processor.
Aunque uses el token conf_http_HTTP.ignore.allow_header.for.405
para actualizar el valor en Message Processor, debes verificar si la propiedad real HTTP.ignore.allow_header.for.405
se estableció en false
.
- En la máquina del procesador de mensajes, busca la propiedad
HTTP.ignore.allow_header.for.405
en el directorio/opt/apigee/edge-message- processor/conf
y verifica si se configuró comofalse
, como 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 Message Processor, el comando anterior debería mostrar el valor de la propiedad
HTTP.ignore.allow_header.for.405
comofalse
en 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.405
comotrue
, verifica que hayas seguido correctamente todos los pasos descritos en Configura el encabezado de omisión de la propiedad 405 como falso en Message Processor. 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.