tldr; Cum configurați modulul de evenimente Apache MPM ca un proxy invers funcțional atunci când rulați în spatele unui AWS Application Load Balancer de mare capacitate?
Aspect
AWS Application Load Balancer -> Apache 2.4.x -> AWS Internal TCP Load Balancer (NLB) -> Jetty App Servers
Utilizarea setării de configurare afișată mai jos pentru modulul de evenimente Apache MPM nu este stabilă în spatele unui echilibrator de încărcare a aplicației AWS. Timpii de răspuns sunt mult măriți și cererile eșuează intermitent pentru erorile 502 returnate de ALB.
Configurația lucrătorului
ServerLimit 250
StartServers 100
MinSpareThreads 75
MaxSpareThreads 250
ThreadLimit 64
ThreadsPerChild 64
MaxRequestWorkers 8000
Configurare ProxyPass
enableruse=on dobândire=10 connectiontimeout=2 timeout=55 max=400 retry=0 keepalive=on
Eveniment MPM vs lucrător MPM
Trecerea la modulul de lucrător MPM arată îmbunătățiri instantanee ale timpilor de răspuns, iar erorile 502 dispar complet.
Depanare
Am reușit să urmăresc cele 502 erori returnate de ALB până la 408 erori returnate de Jetty. Jetty pare să arunce erorile din cauza timeout-urilor pentru citirea cererii.
Rularea Ubuntu 20.04 cu Apache 2.4.41-4ubuntu3.8.
Note interesante
- Solicitările prin intermediul unui AWS Network Load Balancer (NLB) către aceleași instanțe Apache răspund rapid și nu afișează erori 502