Si ottengono intermittenti ma errori regolari 503 ("Servizio non disponibile: server back-end disponibile") da un sito costituito da 2 istanze t2.medium dietro un ELB. Nessuno è sotto carico particolarmente pesante e tutto il monitoraggio sembra normale.Come risolvere AWS ELB/EC2 HTTP 503 con le impostazioni di timeout?
La documentazione AWS qui: http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ts-elb-error-message.html dicono che una potenziale causa è impostazioni di timeout non corrispondenti tra l'ELB e EC2S: "impostato il timeout keep-alive a maggiore o uguale alle impostazioni di timeout di inattività del tuo bilanciamento del carico"
Apache conf sui EC2S ha:
- KeepAlive on
- MaxKeepAliveRequests 100
- KeepAliveTimeout 5
Il timeout di inattività sul bilanciamento del carico è di 60 secondi.
Questo sembrerebbe, quindi, essere una causa, ma non sono sicuro della correzione. Aumentare Apache KeepAliveTimeout non è - lo capisco - normalmente raccomandato, e sono ugualmente incerto sull'effetto che la riduzione del timeout di inattività sull'ELB avrà sulle prestazioni del sito.
Qual è l'approccio consigliato? Come posso avere un'idea di quali sono le impostazioni ideali per la mia configurazione e il tipo di livello di traffico (attualmente circa 30-50 richieste/min) con cui si occupa?
L'aumento del timeout di apache dovrebbe andare bene, dietro ELB, perché ELB tiene le connessioni, invece dei browser che le tengono direttamente. Provalo? –