Оставьте в живых тайм-аут, не соблюдаемый на Amazon ELB

9

Я использую Tomcat 6.0.24 в Ubuntu (JDK 1.6) с приложением, которое выполняет запросы в стиле Comet на соединителе HTTPS (напрямую с Tomcat, не используя APR).

Я хотел бы установить для keep-alive 5 минут, чтобы мне не приходилось обновлять соединения с длительным опросом. Вот мой конфиг:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="1000"  keepAliveTimeout="330000"
        scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" />

К сожалению, кажется, что сервер закрывает соединение через 65 секунд. PCAP из примера сессии выглядит примерно так:

T=0   Client sends SYN to server, handshake etc.
T=65  Server sends FIN to client
T=307 Client sends FIN to server

(Я предполагаю, что 5-минутный тайм-аут на клиенте связан с тем, что библиотека HTTP не обнаруживает закрытие сокета на стороне сервера, но в любом случае - сервер не должен закрывать соединение так рано)

(редактировать: это работает, как и ожидалось, при использовании стандартного коннектора HTTP)

sehugg
источник

Ответы:

13

У ELB (Elastic Load Balancer) Amazon есть недокументированный ( кроме форумов ) 60-секундный тайм-аут, который разорвет соединение, если данные не были отправлены. Кажется, что хакерство путем отправки пробелов каждые 55 секунд будет работать, пока они не сделают это настраиваемым.

sehugg
источник
(тайм-аут все еще там, кстати ... даааа)
sehugg
все еще не настраивается ... это нерешенный вопрос с 2009 года или около того сейчас ...
Деннис Мюнкле
4
Настраивается до 1 часа. Docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/…
Питер
10

Тайм-аут балансировщика нагрузки, который закрывает соединение, теперь задокументирован :

Чтобы настроить время ожидания простоя для вашего балансировщика нагрузки

  1. Откройте консоль Amazon EC2 по адресу https://console.aws.amazon.com/ec2/ .
  2. В навигационной панели, в разделе Load Balancing , нажмите Load Балансировщиков .
  3. Выберите балансировщик нагрузки.
  4. На нижней панели выберите вкладку « Описание ».
  5. Найдите настройки подключения и нажмите (Изменить) .
  6. В диалоговом окне « Настройка параметров подключения » введите значение для времени ожидания . Диапазон времени ожидания простоя составляет от 1 до 3600 секунд.
  7. Нажмите Сохранить .
Золтан
источник
Теперь это должен быть принятый ответ.
Джонатан