Esiste un'interfaccia programmatica per la configurazione di nginx?


8

Sto usando nginx come un bilanciamento del carico davanti alle mie istanze del web server. Corro 4 istanze del web server e distribuisco equamente il traffico su di loro usando nginx. Durante la distribuzione di una nuova versione, cambio nginx.conf e contrassegno i primi 2 dei 4 server, quindi riavvio nginx. Aggiornamento il codice del server e riavvio i primi 2 server. Quindi modifico nginx.conf per indicare che i primi 2 server sono attivi e contrassegnare gli altri 2 in basso, quindi riavviare nginx. Quindi aggiorno e riavvio altre due istanze. Aggiorna nuovamente nginx.conf contrassegnando tutti i server e il riavvio finale di nginx.

Devo fare questo processo più volte in alcuni giorni. Eseguendo manualmente i passaggi precedenti ogni volta risulta essere soggetto a errori.

Esiste un accesso programmatico a nginx / nginx.conf in modo da poter automatizzare questo processo?

[L'unico modo che immagino in questo momento è scrivere sopra i passaggi nello script della shell]


3
Quello che stai facendo sembra molto strano. Impostato fail_timeoutsu 5 secondi su ciascuno di essi, ne abbatte due e NGINX lo raccoglierà e reindirizzerà tutto il traffico verso i secondi due nodi. Aggiorna il tuo codice, attendi 5 secondi (o qualunque sia il tuo valore di timeout) e NGINX inizierà a utilizzare i primi due server, quindi abbassa i secondi due e ripeti. NGINX gioca molto bene con quel tipo di installazione
Smudge,

Risposte:


3

No, nginx non ha un'API di configurazione.

Sebbene ci siano casi in cui potrebbe essere necessario contrassegnare manualmente i server come inattivi, in genere la configurazione di proxy_next_upstream + fail_timeout funzionerà.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.