Você está vendo a documentação do Apigee Edge.
Acesse a
documentação da Apigee X. informações
Na comunicação cliente-servidor, um servidor responderá com o código de status HTTP 405
Method Not Allowed
se o
método de solicitação HTTP apresentado pelo cliente for conhecido pelo servidor,
mas não for aceito pelo recurso de destino. Da mesma forma, na Apigee Edge, o servidor de back-end pode
responder com o código de status HTTP 405 Method Not Allowed.
O Apigee Edge espera que o servidor de back-end envie respostas 405 Method Not Allowed
com a lista de métodos permitidos no cabeçalho Allow
, conforme a especificação
RFC 7231, seção 6.5.5: método 405 não permitido (em inglês).
O cabeçalho Allow
precisa ser enviado no seguinte formato:
Allow: HTTP_METHODS
Por exemplo, se o servidor de back-end permitir os métodos GET
, POST
e
HEAD
, verifique se o cabeçalho Allow
os contém
da seguinte maneira:
Allow: GET, POST, HEAD
Se o servidor de back-end não enviar o cabeçalho Allow
com o código de status HTTP
405 Method Not Allowed,
, a Apigee retornará o código de status HTTP 502 Bad
Gateway
com o código do erro protocol.http.Response405WithoutAllowHeader
para o
aplicativo cliente. A solução recomendada para resolver esse erro é
corrigir o servidor de back-end para aderir à especificação
RFC 7231, seção 6.5.5: Método 405 não permitido ou usar o tratamento de falhas para
responder com o código de status HTTP 405 Method Not Allowed
, incluindo o
cabeçalho Allow
, conforme explicado no manual de solução de problemas
502 Bad Gateway without Response 405.
No entanto, em alguns casos excepcionais, pode não ser possível corrigir seu back-end ou modificar o proxy da API para resolver esse problema imediatamente.
Nesses casos, você pode definir temporariamente o cabeçalho "ignore allow" para a propriedade 405
HTTP.ignore.allow_header.for.405
no
nível do processador de mensagens. Definir essa propriedade como true
impede
que a Apigee retorne a resposta 502 Bad Gateway
para os aplicativos clientes, mesmo que o
servidor de back-end envie o código de status HTTP 405 Method Not Allowed
sem o
cabeçalho Allow
.
Quando você puder corrigir seu servidor de back-end para enviar o código de status HTTP 405 Method
Not Allowed
com o cabeçalho Allow
, será possível reverter a propriedade
HTTP.ignore.allow_header.for.405
para o valor padrão false
.
Antes de começar
Antes de seguir as etapas deste documento, é importante entender os seguintes tópicos:
- Leia o manual: 502 Bad Gateway - response 405 without Allow header.
- Se você não souber como configurar propriedades para o Edge na nuvem privada, leia Como configurar o Edge.
Como configurar o cabeçalho "ignorar permitir" da propriedade 405 como "true" nos processadores de mensagens
No Apigee Edge, a propriedade HTTP.ignore.allow_header.for.405
está definida como
false
, por padrão. Isso permite que o Apigee Edge retorne o 502 Bad
Gateway
com o código de erro protocol.http.Response405WithoutAllowHeader
aos
aplicativos clientes se o servidor de back-end enviar o código de status HTTP 405 Method Not
Allowed
sem o cabeçalho Allow
. Se você quiser impedir que o Apigee Edge
envie 502 Bad Gateway
para aplicativos clientes, defina o valor da
propriedade HTTP.ignore.allow_header.for.405
como true
nos processadores
de mensagens.
Nesta seção, explicamos como configurar a propriedade
HTTP.ignore.allow_header.for.405
para true
nos
processadores de mensagens usando o token de acordo com a sintaxe descrita em
Como configurar o Edge.
-
Na máquina do processador de mensagens, abra o arquivo a seguir em um editor. Se ainda não existir, crie-o.
/opt/apigee/customer/application/message-processor.properties
Por exemplo, para abrir o arquivo usando vi, digite o seguinte:
vi /opt/apigee/customer/application/message-processor.properties
- Adicione uma linha no seguinte formato ao arquivo de propriedades:
conf_http_HTTP.ignore.allow_header.for.405=true
- Salve as mudanças.
- Verifique se o arquivo de propriedades pertence ao usuário
apigee
, conforme mostrado abaixo:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Reinicie o processador de mensagens conforme mostrado abaixo:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Se você tiver mais de um processador de mensagens, repita as etapas acima para todos eles.
Como verificar se o cabeçalho "ignorar permitir" da propriedade 405 está definido como verdadeiro nos processadores de mensagens
Esta seção explica como verificar se a propriedade
HTTP.ignore.allow_header.for.405
foi atualizada para true
nos processadores de mensagens.
Mesmo que você use o token conf_http_HTTP.ignore.allow_header.for.405
para atualizar o valor da propriedade no processador de mensagens, é necessário verificar se a propriedade HTTP.ignore.allow_header.for.405
real foi definida como true
.
- Na máquina do processador de mensagens, pesquise a propriedade
HTTP.ignore.allow_header.for.405
no diretório/opt/apigee/edge-message-processor/conf
e verifique se ela foi definida comotrue
, conforme mostrado abaixo:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Se a propriedade for atualizada no processador de mensagens, o comando acima
vai mostrar o valor da propriedade
HTTP.ignore.allow_header.for.405
comotrue
no arquivohttp.properties
, conforme mostrado abaixo:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- Se o valor da propriedade
HTTP.ignore.allow_header.for.405
ainda aparecer comofalse
, verifique se você seguiu todas as etapas descritas em Como configurar o cabeçalho "ignore allow" da propriedade 405 como "true" nos processadores de mensagens corretamente. Se você perdeu alguma etapa, repita todas as etapas novamente corretamente. - Se ainda assim não for possível modificar a propriedade
HTTP.ignore.allow_header.for.405
, entre em contato com o suporte do Apigee Edge.
Como configurar o cabeçalho "ignorar permitir" da propriedade 405 como "false" nos processadores de mensagens
Nesta seção, explicamos como configurar a propriedade
HTTP.ignore.allow_header.for.405
para o valor padrão false
no processador de mensagens usando o token de acordo com a sintaxe descrita em
Como configurar o Edge.
- Verifique se a propriedade
HTTP.ignore.allow_header.for.405
foi modificada paratrue
. Para isso, pesquise essa propriedade no diretório/opt/apigee/edge-message-processor/conf
e verifique o valor dela usando o seguinte comando:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Se a propriedade estiver definida como
true
no processador de mensagens, o comando acima vai mostrar o valor da propriedadeHTTP.ignore.allow_header.for.405
comotrue
no arquivohttp.properties
, conforme mostrado abaixo:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- Se o comando acima mostrar que a propriedade
HTTP.ignore.allow_header.for.405
está definida comofalse
(valor padrão), você não precisará fazer mais nada. Ou seja, pule as etapas a seguir. - Se a propriedade
HTTP.ignore.allow_header.for.405
estiver definida comotrue
, execute as etapas a seguir para reverter para o valor padrãofalse
. Na máquina do processador de mensagens, abra o seguinte arquivo em um editor:
/opt/apigee/customer/application/message-processor.properties
Por exemplo, para abrir o arquivo usando vi, digite o seguinte:
vi /opt/apigee/customer/application/message-processor.properties
- Remova a seguinte linha do arquivo de propriedades:
conf_http_HTTP.ignore.allow_header.for.405=true
- Salve as mudanças.
- Verifique se o arquivo de propriedades pertence ao usuário
apigee
, conforme mostrado abaixo:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Reinicie o processador de mensagens conforme mostrado abaixo:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Se você tiver mais de um processador de mensagens, repita as etapas acima para todos eles.
Como verificar se o cabeçalho "ignorar permitir" da propriedade 405 está definido como falso nos processadores de mensagens
Esta seção explica como verificar se a propriedade
HTTP.ignore.allow_header.for.405
foi atualizada para false
nos processadores de mensagens.
Mesmo que você use o token conf_http_HTTP.ignore.allow_header.for.405
para atualizar o valor no processador de mensagens, é necessário verificar se a propriedade HTTP.ignore.allow_header.for.405
real foi definida como false
.
- Na máquina do processador de mensagens, pesquise a propriedade
HTTP.ignore.allow_header.for.405
no diretório/opt/apigee/edge-message- processor/conf
e verifique se ela foi definida comofalse
, conforme mostrado abaixo:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Se a propriedade for atualizada no processador de mensagens, o comando acima
vai mostrar o valor da propriedade
HTTP.ignore.allow_header.for.405
comofalse
no arquivohttp.properties
, conforme mostrado abaixo:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
- Se o valor da propriedade
HTTP.ignore.allow_header.for.405
ainda aparecer comotrue
, verifique se você seguiu todas as etapas descritas em Como configurar o cabeçalho "ignore allow" da propriedade 405 como "false" nos processadores de mensagens corretamente. Se você esqueceu alguma etapa, repita todas as etapas corretamente. - Se ainda assim não for possível modificar a propriedade
HTTP.ignore.allow_header.for.405
, entre em contato com o suporte do Apigee Edge.