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