Назад | Перейти на главную страницу

Тайм-аут HTTP DELETE между Nginx и приложением

Мы сталкиваемся с действительно странной ошибкой при использовании 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.

Журнал отладки

Спасибо!