Задать вопрос
@vanek-dev

Почему падают WebSocket-соединения через 30 секунд в Docker?

Недавно мы в команде пилили обновленный микросервис chat-gateway для нашего виджета онлайн-чатов. Всё работало идеально на локалке, но как только мы развернули стейджинг в Docker-контейнерах, всплыл неприятный баг: ровно через 30 секунд простоя WebSocket-соединение с клиентом наглухо рвется с ошибкой Connection reset by peer.

Тимлид сказал: «Ваня, ты джун, вот и тренируйся на багах, иди копай Nginx и таймауты».

В итоге я обложился логами авторизации, снял дампы сетевых пакетов и попытался понять, почему сбрасывается ping/pong. Логи получились огромные, но, кажется, я зафиксировал момент, когда отваливается хэндшейк.

Чтобы не забивать пост простынями текста, я выложил полный дебаг-лог с сервера и свой тестовый шаблон подключения к сокетам в отдельный репозиторий у себя на GitHub vanek-devv-2026.

Собственно, вопрос к сообществу:
Кто сталкивался с подобным при проксировании вебсокетов через Nginx в связке с Go-бэкендом? Это proxy_read_timeout тупит, или всё-таки Docker network режет длинные TCP-сессии?
  • Вопрос задан
  • 320 просмотров
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Академия Эдюсон
    FullStack-разработчик: тариф PRO
    14 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Web-разработчик + ИИ
    8 месяцев
    Далее
Решения вопроса 1
Tigromus
@Tigromus
Скучающий мечтатель без свободного времени
Разрыв соединения ровно через фиксированное время простоя при ошибке Connection reset by peer практически всегда указывает на таймаут неактивности (idle timeout) на одном из уровней проксирования или внутри самого Go-сервера.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы