У меня странная проблема с сервером Gunicorn (обслуживающим приложение фляги), который мы запускаем за Amazon ELB. Amazon ELB периодически выдавал 502 при доступе к разным URL-адресам на сервере Gunicorn. Похоже, что нет ни одного конкретного URL-адреса, который стал бы жертвой этих ошибок, поэтому я не смог обнаружить закономерность. Сначала я предположил, что между пулеметом и ELB что-то не так, что привело к ошибке 502. Однако я включил журналы доступа на Gunicorn и заметил, что Gunicorn на самом деле получал и обрабатывал эти запросы, ну, в любом случае получая их:
100.111.0.0 - - [11/Feb/2019:13:42:37 +0000] "GET /page?args=0 HTTP/1.1" 200 502 "https://oursite.com/page" "<USER AGENT>"
Он отвечал 502, и это меня смущает. У меня создалось впечатление, что 502 - это то, что вернули шлюзы (например, ELB или nginx, работающие в качестве интерфейса). Я не уверен, что 502 вообще является допустимым кодом возврата для Gunicorn, поскольку на самом деле это не шлюз ни к чему, кроме приложения Flask, стоящего за ним. Я проверил журналы, создаваемые базовым приложением flask, и ничего не появилось на отметке времени из журналов выше. Я также проверил, действительно ли разработчик приложения возвращал где-нибудь 502, и похоже, что это не так.
Буду признателен за любую помощь, которую кто-нибудь может предложить по этой теме. Большинство сообщений, которые я нашел до сих пор, касаются шлюзов перед Gunicorn, которые возвращают 502, потому что у них проблемы с разговором с самим Gunicorn. Но, похоже, здесь дело обстоит не так, поэтому я немного растерялся.