一尘不染

具有其他语言的外部部门的NodeJS API

node.js

我正在开发NodeJSAPI,一切正常。

对于特定问题,我正在使用本地CLI依赖项,该依赖项会处理一些 输入 文件并 输出 其他内容,以防从API返回。

我想知道(也许让我敞开心I)可以在生产中为该API提供什么样的服务。

这个想法是要有一个Node环境(例如在我的本地环境中)可以在同一台机器上安装不一定要写入的外部依赖项Node

我的特定依赖项是fontforge和其他小东西。

提前致谢。


阅读 303

收藏
2020-07-07

共1个答案

一尘不染

如果您需要安装使用npm不容易安装的自定义软件,那么很难击败一个好的VPS。我最喜欢的VPS提供商是DigitalOcean。您可以通过此链接免费使用两个月的基本服务器,以便在付款之前查看是否适合您。第二受欢迎的VPS提供商是Vultr,因为您可以在其服务器上安装自定义ISO。您可以通过此链接免费试用。但这将意味着您自己要照顾服务器。借助Heroku之类的服务,一切都会为您服务-
但您无法在此处安装任何内容。使用VPS,您可以获得具有root用户访问权限的服务器。通常它是Linux,但是DigitalOcean也支持FreeBSD,并且某些人安装了OpenBSD,尽管它并未得到官方支持。使用VPS,您可以安装任何所需的东西,但您必须自己做。总会有一个权衡。

更多信息

安装节点

要在VPS上安装Node,我的建议是/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

以启动,重新启动和停止您的应用-系统启动或关闭时也会自动发生。

2020-07-07