部署 node 的最佳方式是什么.js?

我有一个Dreamhost VPS(他们称之为VM),我已经能够安装Node.js并设置一个代理.只要我保持启动node时使用的SSH连接处于打开状态,这就非常有效.

推荐答案

2016 answer:几乎每个Linux发行版都有systemd,也就是forever, monit, PM2, etc. are no longer necessary - your OS already handles these tasks.

制作一个myapp.service文件(显然,用你的应用程序名替换"myapp"):

[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=nobody
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/var/www/myapp

[Install]
WantedBy=multi-user.target

Note if you're new to Unix: /var/www/myapp/app.js应该在第一行有#!/usr/bin/env node,并将可执行模式打开chmod +x myapp.js.

将您的服务文件复制到/etc/systemd/system文件夹中.

systemctl daemon-reload美元向systemd介绍新服务.

systemctl start myapp开始.

使其在开机时以systemctl enable myapp的速度运行.

请参阅带有journalctl -u myapp的日志(log)

这取自100,其中还包括生成AWS/DigitalOcean/Azure CloudConfig以构建Linux/node服务器(包括.service文件)的命令.

Node.js相关问答推荐

Azure虚拟机上的JS Express:可疑请求?

如何在Node.js 中设置图表js的背景色

Next.js 路由不起作用 - 页面未正确加载

为什么 client.on("messageCreate") 的 TextChannel 中缺少 nsfw 属性?

为什么我的 Cypress Post 请求的请求正文是空的?

在 React 和 Socket.io 中使用 Effect 钩子重新渲染两次

Mongoose-更新嵌套数组

Mongoose,如何一次更新多个?

aws cdk 2.0 init 应用程序无法构建更漂亮的问题,这来自 jest-snapshot

如何在拦截器中发送不同的请求?

类型中缺少属性,该类型是由类实现的接口

在 Passport 策略回调中获取请求对象

Mongoose:查找、修改、保存

使用 Socket.io 将客户端连接到服务器

如何监控 node.js 上的网络,类似于 chrome/firefox 开发者工具?

如何在 MongoDB 上只收听 localhost

当我try 向我的 S3 存储桶 (Node.js) 发送内容时,AWS 缺少凭证

Nodejs将字符串转换为UTF-8

node.js 示例

使用 Node-sass 缩小 CSS