我正在开发NodeJSAPI,一切正常。
NodeJS
对于特定问题,我正在使用本地CLI依赖项,该依赖项会处理一些 输入 文件并 输出 其他内容,以防从API返回。
我想知道(也许让我敞开心I)可以在生产中为该API提供什么样的服务。
这个想法是要有一个Node环境(例如在我的本地环境中)可以在同一台机器上安装不一定要写入的外部依赖项Node。
Node
我的特定依赖项是fontforge和其他小东西。
提前致谢。
如果您需要安装使用npm不容易安装的自定义软件,那么很难击败一个好的VPS。我最喜欢的VPS提供商是DigitalOcean。您可以通过此链接免费使用两个月的基本服务器,以便在付款之前查看是否适合您。第二受欢迎的VPS提供商是Vultr,因为您可以在其服务器上安装自定义ISO。您可以通过此链接免费试用。但这将意味着您自己要照顾服务器。借助Heroku之类的服务,一切都会为您服务- 但您无法在此处安装任何内容。使用VPS,您可以获得具有root用户访问权限的服务器。通常它是Linux,但是DigitalOcean也支持FreeBSD,并且某些人安装了OpenBSD,尽管它并未得到官方支持。使用VPS,您可以安装任何所需的东西,但您必须自己做。总会有一个权衡。
要在VPS上安装Node,我的建议是/opt使用版本化目录和符号链接进行安装- 这是我为不同答案编写的示例过程:
/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:
/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
/www/YOURAPP/run
/www/YOURAPP/log
--chuid node
--chuid OTHERUSER
(请确保使用--chuid上面的名称添加用户)
--chuid
随着你/etc/init/YOURAPP.conf的地方,你可以安全地重新启动服务器,让你的应用程序仍在运行,可以运行:
start YOURAPP restart YOURAPP stop YOURAPP
以启动,重新启动和停止您的应用-系统启动或关闭时也会自动发生。