Я использую Tomcat 6.0.24 в Ubuntu (JDK 1.6) с приложением, которое выполняет запросы в стиле Comet через коннектор HTTPS (непосредственно против Tomcat, без использования APR).
Я хотел бы установить время активности на 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-коннектора)
У Amazon ELB (Elastic Load Balancer) есть недокументированный (кроме форумов) 60-секундный тайм-аут, который разорвет соединение, если данные не были отправлены. Взлом путем отправки пробелов каждые 55 секунд, похоже, будет работать, пока они не сделают это настраиваемым.
Таймаут балансировщика нагрузки, который закрывает соединение, теперь задокументированный:
Чтобы настроить параметр времени ожидания простоя для балансировщика нагрузки
- Откройте консоль Amazon EC2 на https://console.aws.amazon.com/ec2/.
- На панели навигации под БАЛАНСИРОВКИ НАГРУЗКИнажмите Балансировщики нагрузки.
- Выберите балансировщик нагрузки.
- На нижней панели выберите Описание таб.
- найти Настройки соединения, а затем щелкните (Редактировать).
- в Настроить параметры подключения диалоговом окне введите значение для Тайм-аут простоя. Диапазон времени ожидания простоя составляет от 1 до 3600 секунд.
- Нажмите Сохранить.
Тайм-аут для неактивных подключений упоминается в разделе устранения неполадок проверки работоспособности: http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/DeveloperGuide/ts-elb-healthcheck.html
Диапазон времени ожидания простоя ELB обновляется и может составлять от 1 секунды (минимум) до 4000 секунд (максимум), а значение по умолчанию для времени ожидания простоя составляет 60 секунд.
https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html