如何让 Node.js 后端作为一个服务运行在 Windows 服务器上。

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

如何让 Node.js 后端作为一个服务运行在 Windows 服务器上。

一个比较守旧的老师的要求、写完了功能之后不喜欢运行在 Linux 服务器上的,要跑在 Windows 上。

首先呢,我用 Windows 上的 pm2 服务,他说还要用 cmd,不能直接放到 iis 上吗? 然后我一搜,还真有个 iisNode 的插件,我折腾了半天,复杂程度比 pm2 有过之而无不及。 所以问一下各位有没有经验、有更好的方式

30 回复

在 cmd 里面用 pm2 命令启动(

docker 貌似是一个不错的选择

在 cmd 里面用 pm2 命令启动 +1

pm2 怎么就复杂了,写个代码 cmd 都不会用吗。。。。

守旧的老师?退休算了

windows 的 docker 一点也不好用……应该比不上 pm2

这个用过,效果不错,的确是外来的和尚会念经

这不是守旧,这是憨
还要用 iis ? 脱裤子放屁

老师可能是会用 Linux,要理解

放 IIS ?我笑了。🙃🙄
这老师,你能访问使用看得到结果就可以了,真以为自己是很牛 B 的甲方呢?
现在学校还有这种守旧却要求很高的老师?

网络中心的主任

不要这么说嘛,我还是很尊重他的,我认为学校的网络拓扑做的很好,五六十岁的老师了,已经不想自己动手写程序了。

#10

#13

可能目标服务器上有正在运行的依赖 IIS 的项目, 这种时候不得不妥协

pm2 已经够简单了。。。

我试过用 WinSW 可以把 nginx 做成 windows 服务,nodejs 改下配置也可以用,推荐试试。

谢谢,为什么呢。早知道用 asp 了,我的过失

#18 这个也是没办法预知的嘛 😂

你可以试试用 C# 写个 WinForm 程序来后台运行 cmd 指令, 平时最小化到托盘区 (笑, 以前我在学校做校内服务的时候用过的骚操作)

不过看了楼上的 NSSM, 感觉用那个可能还比较省事

开个虚拟机 😁

srvany/nssm 绝对满足你的要求,因为没写 wind2 之前我也用他们托管过 node.exe

虚拟机,port forwarding 出来

那就用 golang 来写就好.跨平台

goLang 能解决我这个问题吗,Windows 也不是不能跑 Node。

nssm 就能解决问题,十几分钟搞定。

Nssm +1、作为一个服务

之前尝试在公司已经跑了一堆业务的 Windows Server 2012 上部署 Node.js 项目,最开始也尝试了 PM2,但是各种问题导致 PM2 就是没法用,最后用 NSSM 搞定了,操作起来也很简单,看一下相关的文档和网上的教程就行。
这是我当时研究 NSSM 做的笔记,希望能帮到你: https://github.com/Dream4ever/Knowledge-Base/issues/59

要让 Node.js 后端作为一个服务运行在 Windows 服务器上,你可以使用 nssm(Non-Sucking Service Manager)来将 Node.js 应用程序注册为 Windows 服务。以下是具体步骤:

  1. 安装 Node.js 和 npm: 确保已在 Windows 服务器上安装了 Node.js 和 npm。可以从 Node.js 官网 下载并安装。

  2. 安装 nssm: 下载 nssm,可以从 nssm 官网 获取。下载后解压,并将 nssm.exe 所在目录添加到系统的 PATH 环境变量中。

  3. 编写 Node.js 应用: 确保你的 Node.js 应用有一个启动脚本,例如 app.js

  4. 使用 nssm 注册服务: 打开命令提示符(以管理员身份运行),然后运行以下命令来注册服务:

    nssm install MyNodeService
    

    在出现的 GUI 中,配置以下字段:

    • Path: 指向 node.exe 的完整路径,例如 C:\Program Files\nodejs\node.exe
    • Startup directory: 你的 Node.js 应用所在的目录
    • Arguments: app.js(或其他启动脚本)
  5. 启动服务: 使用以下命令启动服务:

    nssm start MyNodeService
    
  6. 验证服务状态: 你可以通过 Windows 服务管理器或使用以下命令查看服务状态:

    nssm status MyNodeService
    

这样,你的 Node.js 应用就会作为 Windows 服务在后台运行。

回到顶部