Назад | Перейти на главную страницу

TLS-канал Apache mod_ssl умирает через 5 секунд - как мне продлить время ожидания?

Я администратор IIS. Я сделал все, что мог, с документацией mod_ssl, google и т. Д., И не могу найти никого, кто бы хоть раз сталкивался с моей проблемой, не говоря уже о решении. Это, конечно, заставляет меня задуматься, правильно ли я вообще это понимаю, но я вижу это как день в моих трассировках WireShark.

У меня состояние гонки с медленным сервером IIS. Сервер IIS успешно подключается по TLS к моему серверу Apache и отправляет зашифрованный запрос. Сервер Apache отвечает успешно, а сервер IIS обычно доволен и готов. Через 5 секунд сервер Apache передает зашифрованное уведомление TLS Rec Layer-1, и диалог TLS завершается. Однако время от времени согласование усложняется клиентским сервером, когда он отправляет второй или третий зашифрованный запрос через существующий открытый канал TLS. 999 раз из 1000 все эти переговоры проходят безупречно.

1 раз из 1000 медленному серверу IIS требуется ровно 5 секунд, чтобы принять решение об отправке дополнительного зашифрованного запроса (данные приложения TLS). Когда это происходит, зашифрованный запрос пересекает зашифрованное оповещение TLS Rec Layer-1 по сети, в результате чего появляется сообщение «Базовое соединение было закрыто: соединение было закрыто неожиданно».

Я не вижу в mod_ssl директивы, которая позволяет мне продлить 5-секундный тайм-аут разговора. Что я упускаю из виду?

Я могу изменить директиву SSLSessionCacheTimeout, но это не влияет на 5-секундный тайм-аут любого конкретного разговора. Кто-нибудь еще видел такое поведение?

Похоже, что каждый запрос приложения - это отдельный HTTP-вызов - и в этом случае наш виновник, скорее всего, KeepAliveTimeout - значение по умолчанию составляет 5 секунд.

Полное отключение поддержки активности HTTP решило бы проблему, но также ухудшило бы производительность, требуя установления нового соединения TCP, а затем TLS для каждого запроса. Вместо этого, будет ли менее вероятно возникновение гонки «пересечение проводов», если вы увеличите тайм-аут, скажем, до минуты или выше - или приложение отправляет запросы все время? Пока сервер Apache не получает много подключений, увеличение этого значения не должно причинять вреда.

Может просто попробовать:

KeepAliveTimeout 120