Puncte:0

După ceva timp, proxy-ul invers Nginx nu mai funcționează cu erori SSL în amonte până când configurația este reîncărcată

drapel cn

Am un proxy invers Nginx, care se oprește în mod misterios să funcționeze după câteva ore. Jurnalul de erori este umplut cu erori SSL de conectare la amonte. Rularea „nginx -s reload” (repornirea serviciului nginx) rezolvă problema până la următoarea eroare. Aveți idei unde să sapă mai departe?

Fișierele de configurare nu se modifică, nu există nicio altă activitate în jurnale. Nu pot indica „timpul de a eșua”, uneori pare să fie de 3-4 ore, uneori undeva în jurul orei 8.

Aplicația este o aplicație web dinamică, bazată pe Java Swing, dintr-o terță parte, din pivnița de groază de companie moștenită... :)

Fragment pentru una dintre numeroasele locații de configurare Nginx pentru locația URI specifică. Nu se poate folosi una / locație deoarece una dintre locații necesită autorizare MTLS, iar altele trebuie pur și simplu să se bazeze pe lista albă.

locație ~* ^/app-location(/?|/.*|-.*)$ {
  include /etc/nginx/conf.d/include.APP.whitelist;
  proxy_pass https://__APP_LB_DNS__:6443;
  proxy_ssl_server_name activat;
  proxy_ssl_name __APP_LB_DNS__;
  proxy_ssl_trusted_certificate __certificat-backend-ca-location__;
  proxy_ssl_verify dezactivat;
  proxy_ssl_verify_depth 3;
  proxy_ssl_session_reuse activat;
  proxy_ssl_certificate __client-certificate-location__;
  proxy_ssl_certificate_key __client-certificate-key-location__;
}

După ceva timp, încep să primesc 502: Erori Bad Gateway și error.log este plin cu astfel de erori. 10.0.0.10 este IP-ul de echilibrare a încărcăturii din amonte pentru numele de gazdă APP_LB_DNS.

2022/02/09 21:36:45 [eroare] 12371#12371: *59560 SSL_do_handshake() a eșuat (SSL: error:14094410:SSL routines:ssl3_read_bytes:sslv3 alertează eșec de strângere de mână în fluxul de alertă SSL: 40SL) , client: CLIENT_IP, server: EXTERNAL_DNS_NAME, cerere: „GET /app-location/ HTTP/1.1”, în amonte: „https://10.0.0.10:6443/app-location/”, gazdă: „EXTERNAL_DNS_NAME”, referitor: „http://CLIENT_DNS:53998/”

A trebuit să adaug opțiuni pentru a mă asigura că Nginx comunică cu backend-ul Azure LB prin numele său DNS. Altfel primeam erori mai sus în mod constant. Un alt lucru care mă nedumerește este că doar această aplicație ciudată necesită astfel de opțiuni. Alte aplicații scrise interne funcționează bine fără aceste linii.

proxy_ssl_server_name activat;
proxy_ssl_name __APP-DNS__;

Serverul rulează Nginx pe Centos 7 într-o VM Azure nginx-1.18.0-2.el7.ngx.x86_64 nginx-modsecurity3-centos7-3.0.4-1.x86_64

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.