如何让 Node.js 后端作为一个服务运行在 Windows 服务器上。
如何让 Node.js 后端作为一个服务运行在 Windows 服务器上。
一个比较守旧的老师的要求、写完了功能之后不喜欢运行在 Linux 服务器上的,要跑在 Windows 上。
首先呢,我用 Windows 上的 pm2 服务,他说还要用 cmd,不能直接放到 iis 上吗? 然后我一搜,还真有个 iisNode 的插件,我折腾了半天,复杂程度比 pm2 有过之而无不及。 所以问一下各位有没有经验、有更好的方式
docker
在 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, 感觉用那个可能还比较省事
pm2 复杂?
开个虚拟机 😁
srvany/nssm 绝对满足你的要求,因为没写 wind2 之前我也用他们托管过 node.exe
虚拟机,port forwarding 出来
那就用 golang 来写就好.跨平台
goLang 能解决我这个问题吗,Windows 也不是不能跑 Node。
nssm 就能解决问题,十几分钟搞定。
Nssm +1、作为一个服务
nssm
之前尝试在公司已经跑了一堆业务的 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 服务。以下是具体步骤:
-
安装 Node.js 和 npm: 确保已在 Windows 服务器上安装了 Node.js 和 npm。可以从 Node.js 官网 下载并安装。
-
安装 nssm: 下载
nssm
,可以从 nssm 官网 获取。下载后解压,并将nssm.exe
所在目录添加到系统的 PATH 环境变量中。 -
编写 Node.js 应用: 确保你的 Node.js 应用有一个启动脚本,例如
app.js
。 -
使用 nssm 注册服务: 打开命令提示符(以管理员身份运行),然后运行以下命令来注册服务:
nssm install MyNodeService
在出现的 GUI 中,配置以下字段:
- Path: 指向
node.exe
的完整路径,例如C:\Program Files\nodejs\node.exe
- Startup directory: 你的 Node.js 应用所在的目录
- Arguments:
app.js
(或其他启动脚本)
- Path: 指向
-
启动服务: 使用以下命令启动服务:
nssm start MyNodeService
-
验证服务状态: 你可以通过 Windows 服务管理器或使用以下命令查看服务状态:
nssm status MyNodeService
这样,你的 Node.js 应用就会作为 Windows 服务在后台运行。