Estás viendo la documentación de Apigee Edge.
Ve a 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
El método de solicitud HTTP que presenta el cliente es conocido por el servidor.
pero no es compatible con el recurso objetivo. De manera similar, en Apigee Edge, el servidor de backend puede
responde 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: Método no permitido 405.
El encabezado Allow
debe enviarse en el siguiente formato:
Allow: HTTP_METHODS
Por ejemplo, si tu servidor backend permite 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.
Luego, 405 Method Not Allowed,
muestra el código de estado HTTP 502 Bad
Gateway
con el código de error protocol.http.Response405WithoutAllowHeader
al
aplicación cliente. La solución recomendada para abordar este error es
para corregir el servidor de backend y que cumpla con la especificación
.
RFC 7231, sección 6.5.5: Método no permitido 405 o usa el manejo de fallas para
responde con el código de estado HTTP 405 Method Not Allowed
, incluida la
Allow
como se explica en la guía de solución de problemas
Puerta de enlace incorrecta: respuesta 405 sin encabezado Permitir
Sin embargo, en algunos casos excepcionales, tal vez no sea posible corregir tu backend o modificar tu Proxy de API para solucionar este problema de inmediato.
En esos casos, puedes configurar el encabezado para ignorar la falta de permiso en la propiedad 405
.
HTTP.ignore.allow_header.for.405
a las
Nivel de procesador de mensajes temporalmente. Establecer esta propiedad en true
evita que Apigee
de mostrar la respuesta 502 Bad Gateway
a las aplicaciones cliente, incluso si la
de backend envía el código de estado HTTP 405 Method Not Allowed
sin el
Allow
.
Una vez que estés en posición de 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 seguir los pasos de este documento, asegúrate de comprender los siguientes temas:
- Lee la guía: Puerta de enlace incorrecta 502: respuesta 405 sin encabezado Permitir.
- Si no sabes cómo configurar propiedades para el perímetro en la nube privada, lee Cómo configurar Edge.
Configura el encabezado de permitir ignorar la propiedad 405 como verdadero 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 el 502 Bad
Gateway
con el código de error protocol.http.Response405WithoutAllowHeader
al
aplicaciones cliente si el servidor de backend envía el código de estado HTTP 405 Method Not
Allowed
sin el encabezado Allow
. Si quieres evitar que Apigee Edge
enviando 502 Bad Gateway
a las aplicaciones cliente, debes establecer el valor de
la propiedad HTTP.ignore.allow_header.for.405
a true
en el mensaje
Procesadores.
En esta sección, se explica cómo configurar la propiedad
De HTTP.ignore.allow_header.for.405
a true
en el
Message Processors, utilizando el token según la sintaxis descrita en
Cómo configurar Edge
-
En la máquina del procesador de mensajes, abre el siguiente archivo en un editor. Si no ya existen, entonces la crearás.
/opt/apigee/customer/application/message-processor.properties
Por ejemplo, para abrir el archivo usando 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 los mensajes Procesadores.
Verificando que el encabezado de permitir ignorar la propiedad 405 esté configurado como verdadero en Message Processors
En esta sección, se explica cómo verificar que la propiedad
HTTP.ignore.allow_header.for.405
se actualizó correctamente a true
en los procesadores de mensajes.
Si bien usas 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 directorio/opt/apigee/edge-message-processor/conf
y verifica si se estableció entrue
, como se muestra a continuación:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Si la propiedad se actualizó correctamente en Message Processor, el comando anterior
debe 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
y, luego, verifica que hayas seguido todos los pasos que se indican Configura el encabezado "Ignorar permite" en la propiedad 405 como "verdadero" Message Processor correctamente. Si omitiste algún paso, vuelve a repetirlo. correctamente. - Si aún no puedes modificar la propiedad
HTTP.ignore.allow_header.for.405
y, luego, comunícate con el equipo de asistencia de Apigee Edge.
Configura el encabezado de permitir ignorar la propiedad 405 como falso en los procesadores de mensajes
En esta sección, se explica cómo configurar la propiedad
HTTP.ignore.allow_header.for.405
a su valor predeterminado false
en el Message Processor, usando el token según la sintaxis descrita en
Cómo configurar Edge.
- Verifica si la propiedad
HTTP.ignore.allow_header.for.405
se modificó portrue
Para hacerlo, busca esta propiedad en el directorio/opt/apigee/edge-message-processor/conf
y verificar su con el siguiente comando:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Si la propiedad se establece en
true
en Message Processor, el comando anterior debe 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é establecida enfalse
(valor predeterminado), no tendrás que realizar ninguna otra acción. Es decir, omite los siguientes pasos. - Si la propiedad
HTTP.ignore.allow_header.for.405
se configura comotrue
, Luego, sigue estos pasos para volver a su valor predeterminadofalse
. En la máquina del procesador de mensajes, abre el siguiente archivo en un editor:
/opt/apigee/customer/application/message-processor.properties
Por ejemplo, para abrir el archivo usando 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 los mensajes Procesadores.
Verificando que el encabezado de permitir ignorar la propiedad 405 esté configurado como falso en los procesadores de mensajes
En esta sección, se explica cómo verificar que la propiedad
HTTP.ignore.allow_header.for.405
se actualizó correctamente a false
en los procesadores de mensajes.
Aunque uses el token
conf_http_HTTP.ignore.allow_header.for.405
para actualizar el valor del mensaje
Procesador, 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 a continuación:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Si la propiedad se actualizó correctamente en Message Processor, el comando anterior
debe 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
y, luego, verifica que hayas seguido todos los pasos que se indican Configura el encabezado de permitir ignorar la propiedad 405 como falso en los procesadores de mensajes correctamente. Si omitiste algún paso, vuelve a repetirlo correctamente. - Si aún no puedes modificar la propiedad
HTTP.ignore.allow_header.for.405
y, luego, comunícate con el equipo de asistencia de Apigee Edge.