# 2026-07-10 — Ответ Соннета: Werkzeug dev server + chunked TE = гонка ## Диагноз Werkzeug dev server не умеет корректно работать с chunked transfer encoding от nginx. При `proxy_request_buffering: off` nginx шлёт тело чанками. Flask отвечает `Connection: close` → nginx ещё шлёт чанк → RST → таймаут. nginx:alpine держит keep-alive → проблемы нет. ## Решение Gunicorn вместо Werkzeug dev server. Правильно де-чанкует тело, держит persistent connections. ## Способ Shturval запускает `python app.py`. Вместо `app.run()` — Gunicorn через Python API: ```python if __name__ == '__main__': import gunicorn.app.base class StandaloneApp(gunicorn.app.base.BaseApplication): def __init__(self, app, options=None): self.application = app self.options = options or {} super().__init__() def load_config(self): for k, v in self.options.items(): self.cfg.set(k, v) def load(self): return self.application StandaloneApp(app, { 'bind': '0.0.0.0:5000', 'workers': 2, 'timeout': 300, }).run() ``` requirements.txt уже содержит gunicorn. Dockerfile CMD можно убрать (Shturval всё равно переопределяет).