Node.js, экспресс и кластер - PullRequest
3 голосов
/ 12 июля 2011

Я настроил тест сервера Node.js, но как лучше запустить сервер?

Моя стратегия на данный момент заключается в использовании кластера (http://learnboost.github.com/cluster/). Это в основном работает очень хорошо. У меня есть следующая настройка в моем файле app.js (создан с помощью Express):

cluster(app)
.use(cluster.reload())
.use(cluster.reload('views', {extensions: ['.js', '.ejs']}))
.use(cluster.logger('logs'))
.use(cluster.stats())
.use(cluster.repl('/Users/testuser/work/1test/test.sock'))
.use(cluster.debug())
.use(cluster.pidfiles())
.use(cluster.cli())
.listen(3000);

Он работает на моем Mac, когда я тестирую локально. Я запускаю его с командой

nohup node app.js &

Но когда я запускаю Linux и отсоединяюсь от терминала, мастер умирает - рабочие потоки все еще работают. На Macон запускается даже когда я закрываю терминал.

Я прочитал, что может потребоваться смена пользователя, очевидно, это можно сделать в кластере с помощью: .set ('user', 'rambo')

Есть ли у кого-нибудь "лучшие практики" для запуска node.js в качестве "Демона" с кластером, чтобы вы могли отсоединить терминал?

Если я меняю пользователя, который должен войти в систему, как когда язапуск?

Должен ли я использовать такую ​​программу, как screen, чтобы отсоединиться от терминала, не убивая какие-либо процессы?

Ответы [ 2 ]

4 голосов
/ 14 июля 2011

попробуй навсегда.

npm install -g forever

https://github.com/indexzero/forever

0 голосов
/ 27 июля 2011

Похоже, вы тоже настраиваете

.use(cluster.repl('/Users/testuser/work/1test/test.sock'))

, который, вероятно, не существует на вашем сервере Linux.

...