Estamos enfrentando um erro muito estranho usando HTTP DELETE, o sintoma é ocasionalmente o usuário recebe um erro 504 (timeout) no navegador.
As solicitações fluem pelas etapas descritas abaixo:
Navegador - > Akamai - > AWS ELB - > Nginx - > Aplicativo da AWS ELB - > Aplicação
Reunimos o pedido. Identificamos que, quando o erro ocorre, a solicitação aparece no access.log do Nginx, mas não no log de acesso do aplicativo da AWB. Então, Nginx é o que retorna o tempo limite, aguarda 60 segundos e retorna 408. Olhando para o log de acesso e o log de depuração, parece que o Nginx está fazendo proxy do pedido para o aplicativo, mas a requisição não passa.
Continuar a solicitação com falha não aparece no servidor TCP Dump on Nginx.
Alguns fatos que reunimos:
Parece que há algum problema com o gerenciamento da conexão persistente em nossa pilha. No entanto, nossa configuração parece correta, por exemplo keep alive timeout está correto, 300 segundos no Akamai, 302 no primeiro ELB, 304 no Nginx e assim por diante.
Também estou anexando o log de depuração Nginx da solicitação, para qualquer um interessado.
O pedido falhado neste caso é: DELETE / api / v2 / carrinho / ULBlIlptUun70M3h4cPm1t7Paos / line / 122555881 HTTP / 1.1
Obrigado!