AWS документация упоминает следующее:
Чтобы балансировщик нагрузки отвечал за закрытие подключений к вашему экземпляру, убедитесь, что значение, которое вы установили для времени поддержания активности HTTP, больше, чем значение тайм-аута простоя в балансировщике нагрузки.
Я столкнулся с проблемой, когда мой ELB запускает ~ 40 запросов (js, css, img), в каждом из которых включен KeepAlive, он использует все мои рабочие потоки и блокирует их для KeepAliveTimeout (который я установил выше, чем время ожидания ELB, поскольку предложено).
Однако ELB не закрывает соединения, когда страница загружается - они просто сидят и блокируют рабочих, пока они не истекут.
Итак, я столкнулся с двумя вопросами:
Включаете ли вы закрепленные сеансы на уровне EC2 или ELB? Включена ли липкость? Какое время отмены регистрации? Разрешен ли слив соединения?
"Amazon ELB в настоящее время отключает постоянные соединения сокетов через 60 секунд, если он не используется. Это условие будет проблемой для случаев использования, которые создают большие файлы (PDF, отчеты) в серверной части EC2, отправляют их в качестве ответа и удерживают соединения в режиме ожидания во время весь процесс генерации ".