Как организовать node.js приложения на сервере?
расскажу как у меня сделано. Есть сервер, внутри Linux Containers, в каждом контейнере отдельное node.js приложение. На самом сервере вне контейнеров стоит nginx, который проксирует запросы к контрейнерам.
Дальше, внутри контейнера nvm с node.js и supervisor. Node.js работает под nobody внутри контейнера.
Куски того как это все настраивается можно глянуть у меня здесь express(node.js) + capistrano + supervisord, здесь Install LXC (Linux Containers) и здесь Install hubot on ubuntu. Записям год, что-то немного могло измениться.
Создание нового приложения максимально просто, у меня заранее лежит контейнер sample, в котором уже стоит и supervisor и node.js в nvm. Просто делаю lxc-clone контейнеру и прописываю ip с mac адресом.
1. Управлять автозапуском, рестартом можно удобно при помощи supervisor
2. Watchdog служит как раз для этого
3. Supervisor как раз и такое умеет
4. Supervisor как раз и такое умеет
5. Тут думаю можно написать не глючный wrapper