Mon site utilise deux serveurs d'applications, à savoir app1 et App2, donc dans la configuration que j'ai quelque chose comme ceci:La directive "include" peut-elle être utilisée dans le bloc amont de nginx?
upstream cluster {
server app1:8080;
server app2:8080;
}
Depuis chaque fois que je mets à jour le code que je dois redémarrer les deux processus serveur et je veux le service non perturbée, je vais suivre ces étapes manuellement:
Commentaire
app1
dans le bloc en amont afin de le modifier en:upstream cluster { #server app1:8080; server app2:8080; }
Run
nginx -s reload
Code de mise à jour à
app1
et redémarrez le programme serveur, puis uncommentapp1
dans le bloc amontEffectuez les étapes 1-3 pour
app2
Je souhaite écrire un script pour épargner ce travail fastidieux, donc ce que j'espère faire est la suivante:
avoir un dossier nommé « disponible » qui contient
app1.conf
etapp2.conf
sous forme queserver app1:8080;
Demandez à un autre dossier nommé « activé » pour contenir les liens souples de
app1.conf
etapp2.conf
Modifier l'amont cluster en
upstream cluster { include /usr/local/nginx/conf/enabled/*; }
Donc, chaque fois que je dois désactiver un serveur d'application, je peux juste rem ove le lien souple correspondant du « activé » dossier, puis peut restaurer en exécutant
ln -s
Cependant, cette approche ne fonctionne pas bien comme je l'ai reçu un message d'erreur de nginx disant:
[Emerg]: « inclure » la directive n'est pas autorisé ici ....
est-ce si include
ne peut pas être mis dans le bloc en amont? et j'imagine que je ne suis pas seul dans ce genre de scénario, en désactivant et en activant le serveur à la fois, comment les autres gens traitent normalement avec lui?
ne vous connaissez qui version ? –
J'utilisais la dernière version à la fois, mais vous pouvez facilement la tester en modifiant la configuration et en exécutant nginx -t pour vérifier. –