Мы сталкиваемся с действительно странной ошибкой при использовании HTTP DELETE, симптомом иногда является ошибка 504 (тайм-аут) в браузере.
Запросы проходят этапы, описанные ниже:
Браузер -> Akamai -> AWS ELB -> Nginx -> Приложение AWS ELB -> Приложение
Мы изучили запрос. Мы обнаружили, что при возникновении ошибки запрос появляется в журнале Nginx access.log, но не в журнале доступа AWS Application ELB. Таким образом, Nginx - это тот, кто возвращает таймаут, он ждет 60 секунд, а затем возвращает 408. Глядя на журнал доступа и журнал отладки, похоже, что Nginx проксирует запрос для приложения, но запрос не проходит.
В дальнейшем неудачный запрос также не отображается в дампе TCP на сервере Nginx.
Некоторые факты, которые мы собрали:
Похоже, есть проблема с управлением постоянным подключением в нашем стеке. Однако наша настройка кажется правильной, например Тайм-аут сохранения активности установлен правильно, 300 секунд в Akamai, 302 в первом ELB, 304 в Nginx и так далее.
Я также прилагаю журнал отладки Nginx запроса для всех, кого это интересует.
В этом случае неудавшийся запрос: DELETE / api / v2 / cart / ULBlIlptUun70M3h4cPm1t7Paos / line / 122555881 HTTP / 1.1.
Спасибо!