Il mio sito utilizza due application server, vale a dire app1 e app2, quindi nella configurazione che ho qualcosa di simile:La direttiva "include" può essere utilizzata nel blocco upstream di nginx?
upstream cluster {
server app1:8080;
server app2:8080;
}
Dal momento che ogni volta che aggiornare il codice ho bisogno di riavviare entrambi i processi server e voglio il servizio indisturbata, io seguente procedura manualmente:
Commento
app1
all'interno del blocco a monte in modo da modificare in:upstream cluster { #server app1:8080; server app2:8080; }
Run
nginx -s reload
codice di aggiornamento a
app1
e riavviare il programma server, quindi rimuovere il commentoapp1
nel blocco a monteDo i passaggi 1-3 per
app2
desidero scrivere un script per risparmiare questo noioso lavoro, quindi quello che spero di fare è questo:
avere una cartella denominata "disponibile", che contiene
app1.conf
eapp2.conf
in forma comeserver app1:8080;
avere un'altra cartella denominata "abilitato" per contenere i soft link di
app1.conf
eapp2.conf
Modificare il monte cluster in
upstream cluster { include /usr/local/nginx/conf/enabled/*; }
Così ogni volta che ho bisogno di disattivare qualsiasi server di app posso solo rem Ove il soft link corrispondente dalla cartella "enabled", e più tardi in grado di ripristinare eseguendo
ln -s
Tuttavia questo approccio non ha funzionato bene come ho ricevuto un messaggio di errore da nginx dicendo:
[Emerg]: "include" direttiva non è permesso qui a ....
è così include
non si può non essere messo in blocco a monte? e immagino di non essere solo in questo tipo di scenario, disabilitando e abilitando il server a volte, come gli altri normalmente si occupano di esso?
Ti capita di sapere quali versione? –
Stavo usando l'ultima volta, ma è possibile testarlo facilmente modificando la configurazione ed eseguendo nginx -t per verificare. –