Мы запускаем Tornado + Nginx с супервизором в качестве супервизора.
Пример конфигурации (имена изменены)
[program:server]
process_name = server-%(process_num)s
command=/opt/current/vrun.sh /opt/current/app.py --port=%(process_num)s
stdout_logfile=/var/log/server/server.log
stderr_logfile=/var/log/server/server.err
numprocs = 6
numprocs_start = 7000
Мне еще предстоит найти «лучший» способ перезапуска вещей,то, что я, вероятно, наконец-то сделаю, - это чтобы у Nginx был «активный» файл, который обновляется, давая HAProxy понять, что мы вмешиваемся в конфигурацию, затем немного подождем, поменяемся местами, затем снова включим все.
Мы используем Capistrano (у нас есть задача задела для перемещения в Fabric), но вместо удаления файлов * .pyc мы используем символическую ссылку / opt / current на идентификатор выпуска.