Трудно превзойти хороший VPS, если вам нужно установить специальное программное обеспечение, которое нелегко установить с помощью npm. Мой любимый провайдер VPS — Digital Ocean. Вы можете бесплатно пользоваться базовым сервером в течение двух месяцев, перейдя по этой ссылке, чтобы убедиться, хорошо для вас, прежде чем платить что-либо. Вторым любимым провайдером VPS является Vultr, потому что вы можете установить собственные ISO-образы на их серверы. Вы можете попробовать его бесплатно, перейдя по этой ссылке. Но это будет означать заботу о сервере самостоятельно. С такими сервисами, как Heroku, все это позаботится о вас, но вы не сможете установить там все, что захотите. С VPS вы получаете свой собственный сервер с корневым доступом. Обычно это Linux, но Digital Ocean также поддерживает FreeBSD, а некоторые люди устанавливают OpenBSD, хотя официально она не поддерживается. С VPS вы можете установить все, что захотите, но вам придется делать это самостоятельно. Всегда есть компромисс.
Больше информации
Установка узла
Чтобы установить Node на VPS, я рекомендую установить в /opt
с версионным каталогом и символической ссылкой — это пример процедуры, которую я написал для другой ответ:
# change dir to your home:
cd ~
# download the source:
curl -O https://nodejs.org/dist/v6.1.0/node-v6.1.0.tar.gz
# extract the archive:
tar xzvf node-v6.1.0.tar.gz
# go into the extracted dir:
cd node-v6.1.0
# configure for installation:
./configure --prefix=/opt/node-v6.1.0
# build and test:
make && make test
# install:
sudo make install
# make a symlink to that version:
sudo ln -svf /opt/node-v6.1.0 /opt/node
См. этот ответ для получения дополнительной информации.
Ваши стартовые сценарии
Чтобы ваше собственное приложение хорошо запускалось при запуске сервера — вот пример сценария Upstart, основанный на том, который я использую — он должен работать в Ubuntu 14.04, не тестировался в более новых версиях — сохраните его в /etc/init/YOURAPP.conf
:
# When to start the service
start on runlevel [2345]
# When to stop the service
stop on runlevel [06]
# If the process quits unexpectadly trigger a respawn
respawn
# Start the process
exec start-stop-daemon --start --chuid node --make-pidfile --pidfile /www/YOURAPP/run/node-upstart.pid --exec /opt/node/bin/node -- /www/YOURAPP/app/app.js >> /www/YOURAPP/log/node-upstart.log 2>&1
Просто измените:
YOURAPP
на имя вашего собственного приложения
/opt/node/bin/node
на свой путь к node
/www/YOURAPP/app/app.js
на путь к вашему приложению Node.
/www/YOURAPP/run
туда, где вы хотите, чтобы ваш файл PID
/www/YOURAPP/log
туда, где вы хотите хранить журналы
--chuid node
на --chuid OTHERUSER
, если вы хотите, чтобы он работал под другим пользователем, чем node
(не забудьте добавить пользователя с именем из --chuid
выше)
С вашим /etc/init/YOURAPP.conf
вы можете безопасно перезапустить свой сервер, и ваше приложение все еще будет работать, вы можете запустить:
start YOURAPP
restart YOURAPP
stop YOURAPP
для запуска, перезапуска и остановки вашего приложения, что также будет происходить автоматически во время загрузки или выключения системы.
person
rsp
schedule
22.09.2016