Как запустить приложение Node.js как его собственный процесс? - PullRequest
191 голосов
/ 13 января 2011

Каков наилучший способ развертывания Node.js?

У меня есть Dreamhost VPS (это то, что они называют VM ), и я смог установить Node.jsи настроить прокси.Это прекрасно работает до тех пор, пока я поддерживаю соединение SSH, которое я запустил, с открытым узлом.

Ответы [ 16 ]

2 голосов
/ 08 ноября 2013

Попробуйте это: http://www.technology -ebay.de / the-team / mobile-de / blog / развертывание узлов-приложений-с-capistrano-github-nginx-and-upstart.html

Отличное и подробное руководство по развертыванию приложений Node.js с Capistrano, Upstart и Nginx

2 голосов
/ 21 июня 2012

Как сказал Box9, Forever - хороший выбор для производственного кода. Но также возможно продолжать процесс, даже если соединение SSH закрыто с клиента.

Хотя это не обязательно хорошая идея для производства, это очень удобно, когда вы находитесь в середине долгих сеансов отладки, или для отслеживания вывода на консоль длинных процессов, или всякий раз, когда полезно отключить ваше соединение SSH, но поддерживать работу терминала на сервере, чтобы позже подключиться (например, запустить приложение Node.js дома и подключиться к консоли позже на работе, чтобы проверить, как идут дела).

Предполагая, что ваш сервер представляет собой * nix box, вы можете использовать команду screen из оболочки, чтобы поддерживать работу процесса, даже если клиентский SSH закрыт. Вы можете загрузить / установить экран из Интернета, если он еще не установлен (найдите пакет для своего дистрибутива, если Linux, или используйте MacPorts , если OS X).

Работает следующим образом:

  1. Когда вы впервые открываете соединение SSH, введите «screen» - это запустит ваш сеанс экрана.
  2. Начните работать как обычно (т.е. запустите приложение Node.js)
  3. Когда вы закончите, закройте свой терминал. Ваш серверный процесс (ы) продолжит работу.
  4. Для повторного подключения к вашей консоли, ssh вернитесь на сервер, войдите в систему и введите «screen -r» для повторного подключения. Ваш старый контекст консоли снова откроется, и вы сможете возобновить его использование.
  5. Чтобы выйти из экрана, когда он подключен к серверу, введите «exit» в командной строке консоли, и вы попадете в обычную оболочку.

При необходимости вы можете запускать несколько сеансов экрана одновременно, как это, и вы можете подключиться к любому из них с любого клиента. Прочитайте документацию онлайн для всех опций.

1 голос
/ 21 сентября 2014

https://paastor.com - это относительно новая услуга, которая выполняет развертывание для вас на VPS или другом сервере. Существует CLI для push-кода. У Paastor есть свободный уровень, по крайней мере, он был на момент публикации этого.

1 голос
/ 19 декабря 2013

Попробуйте node-deploy-server . Это сложный набор инструментов для развертывания приложения на ваших частных серверах. Он написан на Node.js и использует npm для установки.

1 голос
/ 14 февраля 2013

Forever - это хороший вариант для поддержания работоспособности приложений (и его можно установить в виде модуля npm, что приятно).

Но для более серьезного «развертывания» - таких вещей, как удаленное управление развертыванием, перезагрузкой, запускомкоманды и т.д. - я бы использовал capistrano с расширением узла.

https://github.com/loopj/capistrano-node-deploy

1 голос
/ 14 января 2011

В вашем случае вы можете использовать демон upstart .Для полного решения по развертыванию я могу предложить capistrano .Вот два полезных руководства: Как настроить Node.js env и Как выполнить развертывание через capistrano + upstart .

...