部署 Node.js 的最佳方式是什么?
我有一个 Dreamhost VPS(这就是他们所说的VM),我已经能够安装 Node.js 并设置一个代理。只要我保持打开节点的 SSH 连接,这将非常有效。
2016 年回答 :几乎每个 Linux 发行版都带有 systemd,这意味着 永远不再需要监视、PM2 等 - 您的操作系统已经处理了这些任务 。
制作一个myapp.service文件(显然,用您的应用程序名称替换“myapp”):
myapp.service
[Unit] Description=My app [Service] ExecStart=/var/www/myapp/app.js Restart=always User=nobody # Note Debian/Ubuntu uses 'nogroup', RHEL/Fedora uses 'nobody' Group=nogroup Environment=PATH=/usr/bin:/usr/local/bin Environment=NODE_ENV=production WorkingDirectory=/var/www/myapp [Install] WantedBy=multi-user.target
请注意,如果您是 Unix 新手: /var/www/myapp/app.js应该#!/usr/bin/env node在第一行并打开可执行模式chmod +x myapp.js。
/var/www/myapp/app.js
#!/usr/bin/env node
chmod +x myapp.js
将您的服务文件复制到该/etc/systemd/system文件夹中。
/etc/systemd/system
用 . 告诉 systemd 新服务systemctl daemon-reload。
systemctl daemon-reload
开始它systemctl start myapp。
systemctl start myapp
启用它以在启动时运行systemctl enable myapp。
systemctl enable myapp
查看日志journalctl -u myapp
journalctl -u myapp
这取自 How we deploy node apps on Linux, 2018 edition ,其中还包括生成 AWS/DigitalOcean/Azure CloudConfig 以构建 Linux/node 服务器(包括.service文件)的命令。
.service