7

Utilizzo Load Balancer AWS con 3 server EC2 e sto tentando di offrire una pagina di manutenzione quando il sito è in manutenzione.Pagina di bilanciamento del carico e manutenzione di AWS

Questa pagina deve restituire il codice HTTP 503, perché è un codice appropriato per una modalità di manutenzione e preverrà possibili problemi con SEO.

Quando restituisco il codice 503 da uno dei miei server, Load Balancer lo rende "Non in servizio" e quando tutti i server restituiscono 503, il sito Web restituisce una pagina vuota (poiché tutti i server sono disconnessi).

Le mie domande sono:

1) C'è un modo per servire una pagina statica personalizzata con un messaggio per i visitatori provenienti da bilanciamento del carico se non ci sono i server sani?

2) O come configurare Health Check di Load Balancer che non considererà 503 come motivo per contrassegnare il server come "non sano"?

Grazie!

+0

possibile duplicato di [Come si crea una pagina di manutenzione per AWS quando le proprie istanze sono dietro un ELB?] (http://stackoverflow.com/questions/ 13693947/how-do-you-put-up-a-maintenance-page-per-aws-when-your-instance-are-behind-an-e) – BMW

+0

@BMW Penso che sia una buona risposta, ma a un altro domanda (come si fornisce una pagina di whale fallita). Non sembra soddisfare il requisito qui per 503 risposte e presumibilmente causerebbe problemi di SEO. – jarmod

+0

Non riesco a utilizzare altri servizi DNS, utilizzo già quello della mia CDN. –

risposta

9

È possibile implementare un percorso aggiuntivo nel proprio server delle applicazioni, ad esempio/hcm (per la manutenzione del controllo dello stato), che risponde sempre a 200 OK. Quando è il momento della manutenzione, si modifica a livello di codice il controllo dello stato ELB per utilizzare il target/hcm che restituisce 200 OK anziché/o /index.html, che restituiscono entrambi 503 Servizio non disponibile. Ripristina queste modifiche quando si esce dalla manutenzione.

+0

Un'altra opzione consiste nel fare in modo che healthcheck usi TCP piuttosto che HTTP. È più semplice rispetto alla personalizzazione di percorsi speciali e significa che il servizio di bilanciamento del carico considererà l'istanza disponibile finché si connetterà alla porta corretta. Potrebbe non funzionare in tutte le situazioni, ma è perfetto per me con solo due server fissi. – Chris

+0

Non sono in grado di utilizzare TCP per healthcheck, sono disponibili solo HTTP e HTTPS. –

0

il servizio di bilanciamento del carico eseguirà un 503 server quando non si ha più alcun server sano, quindi non si dovrebbe fare nulla di speciale.

se si restituisce qualcosa tranne un 200 sul controllo dello stato, ELB rimuoverà la macchina dal servizio di bilanciamento del carico dopo aver fallito il numero configurato di controlli di integrità.

quindi, per riassumere, puoi potenzialmente servire 503 dalla tua app durante la manutenzione, ma devi sempre restituire 200 per i controlli di integrità. Se non ti interessa il contenuto della pagina, puoi semplicemente rimuovere le macchine dal bilanciamento del carico (o fallire i controlli di integrità) e il LB farà la cosa giusta per te

+0

LB restituisce una pagina vuota con un codice 503, ma è necessario mostrare un messaggio personalizzato ai visitatori durante la modalità di manutenzione. Come posso configurare LB per restituirlo? –

+2

non è possibile configurare ELB per mostrare un 503 personalizzato. – Mircea

Problemi correlati