Multumesc pentru lectura :)
Aceasta este o problemă foarte dificilă și aș dori să primim orice idei sau sugestii pentru a rezolva această problemă.
Problemă: Aplicația de pe un utilizator care se conectează inițiază ~20 de solicitări API în paralel.Prima solicitare va face strângere de mână SSL și apoi în jurul cererii de la 10 la a 13-a, văd că două solicitări inițiază strângerea de mână SSL în același timp, fiecare strângere de mână rămâne blocată și durează peste 25 de secunde pentru a se repeta. Problema se manifestă pentru utilizatori ca o conectare de 30 de secunde.
Înființat: Am o configurare cu echilibrator de încărcare bazat pe hardware și aproximativ 8 noduri nginx care inversează proxy pentru o aplicație java care rulează pe același nod. FE este un SPA, iar tot traficul care circulă prin nginx este conținut dinamic.
detalii suplimentare
- Modificarea keepalive de la 65s la 10s a redus timpul total de handshake SSL de la >30s (care este timeout FE) la 25s, așa că problema este legată într-un fel de keepalive.
- Această problemă a fost prezentă doar pe FF și s-a răspândit acum în safari.
- S-a actualizat nginx la cel mai recent LTS
- Load Balancer distribuie cererile round robin.
- Jurnalele Nginx omit orice mențiune despre problemă.
- Solicitările API sunt ordonate și afectează de obicei 2 din aceleași 3 solicitări.