В настоящее время я пытаюсь настроить контейнер докеров, используя ubuntu: 14.04 в качестве базового образа, с запущенными внутри nginx и gunicorn / django / celery. Я использую supervisor для запуска всех процессов и проверил, что Gunicorn перезапускается, когда он выходит из строя. Однако я не могу понять, как это сделать с помощью nginx.
Мой supervisord.conf для nginx выглядит следующим образом:
[program:nginx]
command=nginx
autorestart=false
У меня для autorestart установлено значение false, потому что, насколько я могу судить, команда nginx просто запускает главный процесс и рабочие процессы, а затем завершается с кодом состояния 0. Если у меня для autorestart установлено значение true, он просто продолжает попытки перезапустить этот nginx. команда, которая не удастся для последующих попыток, потому что главный / рабочий процессы уже запущены и привязаны к порту.
На первый взгляд это кажется нормальным, потому что, если я попытаюсь убить рабочий процесс, мастер запустит другого воркера, который займет его место. Но как мне гарантировать, что главный процесс также останется запущенным?