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