Мой сайт использует два сервера приложений, а именно app1 и app2, поэтому в конфигурации у меня что-то вроде этого:
upstream cluster {
server app1:8080;
server app2:8080;
}
Поскольку каждый раз, когда я обновляю код, мне нужно перезапустить оба серверных процесса, и я хочу, чтобы служба не работала, я буду выполнять следующие шаги вручную:
Комментарий app1
внутри вышестоящего блока, чтобы изменить его на:
upstream cluster {
#server app1:8080;
server app2:8080;
}
Выполнить nginx -s reload
Обновите код на app1
и перезапустите серверную программу, а затем раскомментируйте app1
в восходящем блоке
Выполните шаги 1-3 для app2
Я хочу написать сценарий, чтобы избавить от этой утомительной работы, поэтому я надеюсь сделать следующее:
Иметь папку с именем «available», которая содержит app1.conf
и app2.conf
в форме
server app1:8080;
Иметь другую папку с именем «enabled», которая будет содержать программные ссылки app1.conf
и app2.conf
Измените вышестоящий кластер на
upstream cluster {
include /usr/local/nginx/conf/enabled/*;
}
Таким образом, каждый раз, когда мне нужно отключить любой сервер приложений, я могу просто удалить соответствующую программную ссылку из «включенной» папки, а затем восстановить ее, запустив ln -s
Однако этот подход не сработал, так как я получил сообщение об ошибке от nginx:
[emerg]: директива include не допускается здесь в ....
Так ли include
нельзя поместить в блок восходящего потока? и я полагаю, что я не одинок в этом сценарии, время от времени отключая и включая сервер, как другие люди обычно справляются с этим?