NodeJS API с внешними депами на другом языке

Я разрабатываю NodeJS API и все ок.

Для конкретной проблемы я использую локальную зависимость CLI, которая обрабатывает некоторые входные файлы и выводит другие вещи, на случай возврата из API.

Я хотел знать (возможно, открою свое мнение), какой сервис я могу использовать для обслуживания этого API в производстве.

Идея состоит в том, чтобы иметь Node окружение (как в моем локальном), которое может установить на том же компьютере внешнюю зависимость, не обязательно записанную в Node,

Моя конкретная зависимость это fontforge и другие мелочи.

Заранее спасибо.

1 ответ

Решение

Трудно превзойти хороший VPS, если вам нужно установить пользовательское программное обеспечение, которое нелегко установить с помощью npm. Мой любимый провайдер VPS - Digital Ocean. По этой ссылке вы можете бесплатно пользоваться базовым сервером в течение двух месяцев, чтобы убедиться, что это нормально для вас, прежде чем платить. Вторым любимым поставщиком VPS является Vultr, потому что вы можете устанавливать собственные ISO-образы на их серверах. Вы можете попробовать это бесплатно по этой ссылке. Но это будет означать заботиться о сервере самостоятельно. С такими сервисами, как Heroku, все это позаботится о вас, но вы не сможете установить там, что хотите. С VPS вы получаете свой собственный сервер с root-доступом. Обычно это 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

запускать, перезагружать и останавливать ваше приложение, что также происходит автоматически при загрузке или завершении работы системы.

Другие вопросы по тегам