Рейтинг:0

Через некоторое время обратный прокси-сервер Nginx перестает работать с ошибками SSL для восходящего потока, пока конфигурация не будет перезагружена.

флаг cn

У меня есть обратный прокси-сервер Nginx, который таинственным образом перестает работать через несколько часов. Журнал ошибок заполняется ошибками SSL при подключении к восходящему каналу. Запуск «nginx -s reload» (перезапуск службы nginx) устраняет проблему до следующего сбоя. Есть идеи куда копать дальше?

Файлы конфига не меняются, никакой другой активности в логах нет. Не могу определить "время до отказа", иногда кажется 3-4 часа, иногда где-то 8.

Приложение - это какое-то стороннее динамическое веб-приложение на основе Java Swing из устаревшего корпоративного подвала ужасов... :)

Фрагмент одного из множества местоположений конфигурации Nginx для определенного местоположения URI. Невозможно использовать одно / местоположение, так как одно из местоположений требует авторизации MTLS, а другие просто должны полагаться на белый список.

location ~* ^/app-location(/?|/.*|-.*)$ {
  включить /etc/nginx/conf.d/include.APP.whitelist;
  proxy_pass https://__APP_LB_DNS__:6443;
  proxy_ssl_server_name включено;
  proxy_ssl_name __APP_LB_DNS__;
  proxy_ssl_trusted_certificate __certificate-backend-ca-location__;
  proxy_ssl_verify выключен;
  proxy_ssl_verify_depth 3;
  proxy_ssl_session_reuse включено;
  proxy_ssl_certificate __client-certificate-location__;
  proxy_ssl_certificate_key __client-certificate-key-location__;
}

Через какое-то время я начинаю получать 502: Bad Gateway errors и error.log заполняется такими ошибками. 10.0.0.10 — это IP-адрес восходящего балансировщика нагрузки для имени хоста APP_LB_DNS.

09.02.2022, 21:36:45 [ошибка] 12371#12371: *59560 SSL_do_handshake() не удалось (SSL: ошибка: 14094410: подпрограммы SSL: ssl3_read_bytes: ошибка рукопожатия предупреждения sslv3: номер предупреждения SSL 40) при квитировании SSL с восходящим потоком , клиент: CLIENT_IP, сервер: EXTERNAL_DNS_NAME, запрос: "GET /app-location/ HTTP/1.1", восходящий поток: "https://10.0.0.10:6443/app-location/", хост: "EXTERNAL_DNS_NAME", реферер: "http://КЛИЕНТ_DNS:53998/"

Мне пришлось добавить параметры, чтобы убедиться, что Nginx взаимодействует с бэкэнд-LB Azure через его DNS-имя. В противном случае я постоянно получал ошибки выше. Еще одна вещь, которая меня озадачивает, это то, что только это странное приложение требует таких опций. Другие собственные написанные приложения хорошо работают без этих строк.

proxy_ssl_server_name включено;
proxy_ssl_name __APP-DNS__;

На сервере работает Nginx на Centos 7 в виртуальной машине Azure. Nginx-1.18.0-2.el7.ngx.x86_64 Nginx-modsecurity3-centos7-3.0.4-1.x86_64

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.