HTTPS-соединение перестает работать через несколько минут - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть следующие настройки:

  • Кластер Service Fabric, работающий на 5 машинах, с несколькими службами в контейнерах Docker
  • Публичный IP-адрес с открытым портом 443 для пересылки в службу, в которой работает Traefik
  • Traefik завершает работу SSL и передает запрос службе, запрашиваемой через HTTP

Вот поведение, которое я получаю:

  • Первый запрос к https: // очень, очень медленный. Chrome обычно в конечном итоге загружает его после истечения времени ожидания или ошибок «без содержимого». Invoke-WebRequest в Powershell обычно просто останавливается с сообщением «Базовое соединение было закрыто».
  • Однако, как только он загрузится, я могу что-то обновить или снова запустить команду, и она отвечает очень и очень быстро. Он будет работать до тех пор, пока на URL-адрес регулярно идет трафик.
  • Если я ухожу ненадолго (не уверен в времени, определенно на несколько минут), он умирает и возвращается к началу.

Мой вопрос:

Что могло бы привести к тому, что рукопожатия SSL просто сломались или взялись навсегда? Какой компонент в этом стеке виноват? Время в Service Fabric истекло? Это вещь Трафика? Я мог бы переключиться на Nginx, если он более стабилен. Мы используем те же сертификаты в IIS, и у нас нет этой проблемы.

Я мог бы использовать что-то вроде New Relic, чтобы постоянно посылать пинг каждую минуту, чтобы поддерживать жизнь, но я бы предпочел выяснить, почему соединение исчезает через несколько минут.

Как лучше всего отладить это? Я ничего не вижу в лог-файлах Traefik (в режиме DEBUG), фактически, когда он не подключается, в журналах доступа вообще нет записи о запросе. Какие-нибудь инструменты, которые могли бы помочь отладить это? Спасибо!

1 Ответ

0 голосов
/ 06 ноября 2018

Работает ли служба Traefik на всех 5 узлах, можете ли вы проверить журналы всех 5 экземпляров? Если это не так, это может привести к тому, что Azure Load Balancer будет балансировать нагрузку между узлами, где Traefik не прослушивает, что приведет к прерывистым и медленным ответам. Как только здоровый Traefik ответит, вы получите липкий файл cookie сеанса, который затем сделает последующие ответы быстрее. Вы можете включить мониторинг ApplicationInsights для журналов Traefik, чтобы сэкономить сканирование на всех компьютерах: https://github.com/jjcollinge/traefik-on-service-fabric#debugging. Я также рекомендовал бы протестировать это без SSL, чтобы убедиться, что Traefik может правильно маршрутизировать сначала по HTTP, а затем добавить HTTPS. Таким образом, вы будете знать, что это связано с конфигурацией SSL (т.е. правильно смонтировал сертификаты, конфигурацию Traefik toml, доверенные сертификаты и т. Д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...