Nodejs服务器部署网站的问题

发布于 1周前 作者 sinazl 来自 nodejs/Nestjs

Nodejs服务器部署网站的问题

我用node做的网站,ssh连接服务器,用node xxx.js监听后,那我不能退出做别的事情了吗?能让node后台运行吗?

12 回复

当然可以!当你使用 Node.js 在服务器上部署网站时,通常需要让 Node.js 应用程序在后台持续运行。这样你就可以退出 SSH 会话而不会影响应用程序的运行。

使用 nohup 命令

nohup 是一个常用的命令,可以在你退出 SSH 会话后继续运行进程。你可以使用以下命令:

nohup node xxx.js &

这里:

  • nohup 表示不挂断(no hang up),即使终端关闭,进程也会继续运行。
  • & 表示将进程放到后台运行。

运行后,输出会被重定向到 nohup.out 文件中,除非你指定了其他文件。

使用 screentmux

screentmux 是两个强大的终端复用工具,可以帮助你在同一个终端会话中运行多个任务,并且即使你断开 SSH 连接,这些任务仍然会继续运行。

使用 screen

  1. 启动一个新的 screen 会话:

    screen -S mysession
  2. screen 会话中运行你的 Node.js 应用:

    node xxx.js
  3. Ctrl+A 然后按 D 键,从 screen 会话中分离出来。

  4. 重新连接到 screen 会话:

    screen -r mysession

使用 tmux

  1. 启动一个新的 tmux 会话:

    tmux new -s mysession
  2. tmux 会话中运行你的 Node.js 应用:

    node xxx.js
  3. Ctrl+B 然后按 D 键,从 tmux 会话中分离出来。

  4. 重新连接到 tmux 会话:

    tmux attach -t mysession

使用 pm2 进行进程管理

pm2 是一个非常流行的 Node.js 进程管理工具,可以让你的应用程序在后台持续运行,并提供更高级的功能如日志管理和自动重启。

  1. 安装 pm2

    npm install pm2 -g
  2. 使用 pm2 启动你的应用:

    pm2 start xxx.js
  3. 查看 pm2 的进程列表:

    pm2 list
  4. 停止 pm2 管理的进程:

    pm2 stop xxx
  5. 重启 pm2 管理的进程:

    pm2 restart xxx

通过这些方法,你可以确保你的 Node.js 应用程序在服务器上稳定运行,并且你可以在 SSH 会话中自由地执行其他任务。


或者 说 怎么部署node程序到生产服务器上?

  • 可以自己写个守护进程
  • 用forever模块

正常部署node的网站都是用模块吗

用云服务器吧,部署维护很简单

不想用托管的服务,就想自己配置

设置个cluster,然后直接跑吧,放心node.js没有你想象中那么脆弱,我们之前公司的一个node.js项目放那半年了,也没人维护,还跑的好好的

cluster 是神马。。 我去看看吧 ,谢谢~

nohup命令

nohup node app.js

停止就

kill [PID]

不知道PID就

ps -e

当然,我觉得forever就很好了

好的,我试试forever。

当你使用 node xxx.js 在服务器上启动一个 Node.js 应用时,默认情况下,这个进程会与当前的终端会话绑定。一旦你断开 SSH 连接或者关闭终端,应用也会随之停止运行。为了解决这个问题,你需要让 Node.js 应用在后台持续运行。下面是一些方法来实现这一点。

方法1: 使用 nohup

你可以使用 nohup(no hang up)命令使进程在后台运行,并且即使终端会话结束,进程也不会被挂起。

nohup node xxx.js &

这条命令会让 xxx.js 后台运行,而 nohup 会将输出重定向到 nohup.out 文件中。你可以通过以下方式查看输出:

tail -f nohup.out

方法2: 使用 pm2

pm2 是一个流行的生产级进程管理器,适用于 Node.js 应用。它能让你的应用持续运行,并提供一些其他有用的特性,比如自动重启、负载均衡等。

首先,你需要全局安装 pm2

npm install pm2 -g

然后,你可以在服务器上启动你的应用:

pm2 start xxx.js

如果你想在服务器重启后仍然保持应用运行,可以使用以下命令保存当前的进程列表:

pm2 save

并且设置开机启动:

pm2 startup

以上就是两种常用的方法来让 Node.js 应用在后台持续运行。使用 pm2 不仅能简化部署过程,还能提高应用的稳定性。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!