Você está lendo a documentação do Apigee Edge.
Acesse a
documentação da Apigee X. info
Na comunicação cliente-servidor, um servidor responde 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 for indisponível para o recurso de destino. Da mesma forma, no 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 405 Method Not Allowed respostas
com a lista de métodos permitidos no cabeçalho Allow, conforme a especificação
RFC 7231, seção 6.5.5: 405 Method Not Allowed.
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, você precisará garantir que o cabeçalho Allow os contenha 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, o Apigee vai retornar o código de status HTTP 502 Bad
Gateway com o código de 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: 405 Method Not Allowed ou usar o tratamento de falhas para
responder com o código de status HTTP 405 Method Not Allowed incluindo o
Allow cabeçalho, conforme explicado no manual de solução de problemas
502 Bad Gateway - Response 405 without Allow header (link em inglês).
No entanto, em alguns casos excepcionais, talvez não seja possível corrigir o back-end ou modificar o proxy de API para resolver esse problema imediatamente.
Nesses casos, você pode definir o cabeçalho de permissão de ignorar para a propriedade 405
HTTP.ignore.allow_header.for.405 no nível do
Processador de Mensagens temporariamente. Definir essa propriedade como true impede que o Apigee
retorne a resposta 502 Bad Gateway aos aplicativos cliente, 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 o servidor de back-end para enviar o código de status HTTP 405 Method
Not Allowed com o cabeçalho Allow, poderá reverter a propriedade
HTTP.ignore.allow_header.for.405 para o valor padrão false.
Antes de começar
Antes de usar as etapas neste documento, entenda os seguintes tópicos:
- Leia o manual de solução de problemas - 502 Bad Gateway - response 405 without Allow header (link em inglês).
- Se você não estiver familiarizado com a configuração de propriedades para o Edge para nuvem privada, leia Como configurar o Edge.
Como configurar o cabeçalho de permissão de ignorar para a propriedade 405 como "true" nos processadores de mensagens
No Apigee Edge, a propriedade HTTP.ignore.allow_header.for.405 é 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 para os
aplicativos cliente 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 cliente, defina o valor da propriedade HTTP.ignore.allow_header.for.405 como true nos processadores de mensagens.
Esta seção explica 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 ele ainda não já existir, crie-o.
/opt/apigee/customer/application/message-processor.properties
Por exemplo, para abrir o arquivo usando vi, insira 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 alterações.
- 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 em todos os processadores de mensagens.
Como verificar se o cabeçalho de permissão de ignorar para a propriedade 405 está definido como "true" 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 real
HTTP.ignore.allow_header.for.405 foi definida como true.
- Na máquina do processador de mensagens, pesquise a propriedade
HTTP.ignore.allow_header.for.405no diretório/opt/apigee/edge-message-processor/confe verifique se ela foi definida comotrueconforme mostrado abaixo:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Se a propriedade for atualizada com sucesso no processador de mensagens, o comando acima
deve mostrar o valor da propriedade
HTTP.ignore.allow_header.for.405comotrueno arquivohttp.properties, conforme mostrado abaixo:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- Se você ainda vir o valor da propriedade
HTTP.ignore.allow_header.for.405comofalseverifique se seguiu todas as etapas descritas em Como configurar o cabeçalho de permissão de ignorar para a propriedade 405 como "true" nos processadores de mensagens corretamente. Se você perdeu alguma etapa, repita todas as etapas novamente corretamente. - Se você ainda não conseguir modificar a propriedade
HTTP.ignore.allow_header.for.405, entre em contato com o suporte do Apigee Edge.
Como configurar o cabeçalho de permissão de ignorar para a propriedade 405 como "false" nos processadores de mensagens
Esta seção explica 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.405foi modificada paratrue. Para fazer isso, pesquise essa propriedade no diretório/opt/apigee/edge-message-processor/confe 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
trueno processador de mensagens, o comando acima vai mostrar o valor da propriedadeHTTP.ignore.allow_header.for.405comotrueno 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.405está definida comofalse(valor padrão), não é necessário fazer mais nada. Ou seja, pule as etapas a seguir. - Se a propriedade
HTTP.ignore.allow_header.for.405estiver definida comotrue, siga as etapas abaixo para reverter ao valor padrãofalse. Na máquina do processador de mensagens, abra o arquivo a seguir em um editor:
/opt/apigee/customer/application/message-processor.properties
Por exemplo, para abrir o arquivo usando vi, insira 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 alterações.
- 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 em todos os processadores de mensagens.
Como verificar se o cabeçalho de permissão de ignorar para a propriedade 405 está definido como "false" 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 real HTTP.ignore.allow_header.for.405
foi definida como false.
- Na máquina do processador de mensagens, pesquise a propriedade
HTTP.ignore.allow_header.for.405no diretório/opt/apigee/edge-message- processor/confe verifique se ela foi definida comofalseconforme mostrado abaixo:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Se a propriedade for atualizada com sucesso no processador de mensagens, o comando acima
deve mostrar o valor da propriedade
HTTP.ignore.allow_header.for.405comofalseno arquivohttp.propertiesconforme mostrado abaixo:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
- Se você ainda vir o valor da propriedade
HTTP.ignore.allow_header.for.405comotrue, verifique se seguiu todas as etapas descritas em Como configurar o cabeçalho de permissão de ignorar para a propriedade 405 como "false" nos processadores de mensagens corretamente. Se você perdeu alguma etapa, repita todas as etapas corretamente. - Se você ainda não conseguir modificar a propriedade
HTTP.ignore.allow_header.for.405, entre em contato com o suporte do Apigee Edge.