Princeling
V2EX  ›  Node.js

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

  •  
  •   Princeling · Jan 26, 2020 · 11596 views
    This topic created in 2475 days ago, the information mentioned may be changed or developed.

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

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

    29 replies  •  2020-02-09 22:00:35 +08:00
    zhigang1992
    zhigang1992
    Jan 26, 2020❤️1
    1
    docker
    CoderLife
    CoderLife
    Jan 26, 2020❤️3
    2
    Trim21
    Trim21
    Jan 26, 2020
    3
    在 cmd 里面用 pm2 命令启动(
    Princeling
    Princeling
    OP
    Jan 26, 2020
    4
    @zhigang1992 docker 貌似是一个不错的选择
    yafoo
    yafoo
    Jan 26, 2020 via Android
    5
    在 cmd 里面用 pm2 命令启动 +1
    DoveAz
    DoveAz
    Jan 26, 2020 via Android
    6
    pm2 怎么就复杂了,写个代码 cmd 都不会用吗。。。。
    ferock
    ferock
    Jan 27, 2020 via Android
    7
    守旧的老师?退休算了
    manami
    manami
    Jan 27, 2020 via Android
    8
    windows 的 docker 一点也不好用……应该比不上 pm2
    kknd22
    kknd22
    Jan 27, 2020
    9
    @CoderLife 这个用过,效果不错,的确是外来的和尚会念经
    uxstone
    uxstone
    Jan 27, 2020
    10
    这不是守旧,这是憨
    还要用 iis ? 脱裤子放屁
    gouflv
    gouflv
    Jan 27, 2020 via iPhone
    11
    老师可能是会用 Linux,要理解
    crclz
    crclz
    Jan 27, 2020
    12
    弱智老师
    fengyj
    fengyj
    Jan 27, 2020 via Android
    13
    放 IIS ?我笑了。🙃🙄
    这老师,你能访问使用看得到结果就可以了,真以为自己是很牛 B 的甲方呢?
    现在学校还有这种守旧却要求很高的老师?
    Princeling
    Princeling
    OP
    Jan 27, 2020
    14
    @huiyifyj 网络中心的主任
    Princeling
    Princeling
    OP
    Jan 27, 2020
    15
    @crclz 不要这么说嘛,我还是很尊重他的,我认为学校的网络拓扑做的很好,五六十岁的老师了,已经不想自己动手写程序了。
    chinvo
    chinvo
    Jan 27, 2020❤️1
    16
    @uxstone #10

    @huiyifyj #13

    可能目标服务器上有正在运行的依赖 IIS 的项目, 这种时候不得不妥协
    superrichman
    superrichman
    Jan 27, 2020
    17
    pm2 已经够简单了。。。

    我试过用 WinSW 可以把 nginx 做成 windows 服务,nodejs 改下配置也可以用,推荐试试。
    Princeling
    Princeling
    OP
    Jan 27, 2020
    18
    @chinvo 谢谢,为什么呢。早知道用 asp 了,我的过失
    chinvo
    chinvo
    Jan 27, 2020
    19
    @Princeling #18 这个也是没办法预知的嘛 😂

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

    不过看了楼上的 NSSM, 感觉用那个可能还比较省事
    TangMonk
    TangMonk
    Jan 27, 2020
    20
    pm2 复杂?
    justin2018
    justin2018
    Jan 27, 2020
    21
    开个虚拟机 😁
    ragnaroks
    ragnaroks
    Jan 27, 2020
    22
    srvany/nssm 绝对满足你的要求,因为没写 wind2 之前我也用他们托管过 node.exe
    smilingsun
    smilingsun
    Jan 27, 2020
    23
    虚拟机,port forwarding 出来
    version
    version
    Jan 27, 2020
    24
    那就用 golang 来写就好.跨平台
    Princeling
    Princeling
    OP
    Jan 27, 2020
    25
    @version goLang 能解决我这个问题吗,Windows 也不是不能跑 Node。
    loading
    loading
    Jan 27, 2020 via Android
    26
    nssm 就能解决问题,十几分钟搞定。
    rateltalk
    rateltalk
    Jan 27, 2020 via iPhone
    27
    Nssm +1、作为一个服务
    mritd
    mritd
    Jan 28, 2020 via iPhone
    28
    nssm
    dream4ever
    dream4ever
    Feb 9, 2020
    29
    之前尝试在公司已经跑了一堆业务的 Windows Server 2012 上部署 Node.js 项目,最开始也尝试了 PM2,但是各种问题导致 PM2 就是没法用,最后用 NSSM 搞定了,操作起来也很简单,看一下相关的文档和网上的教程就行。
    这是我当时研究 NSSM 做的笔记,希望能帮到你: https://github.com/Dream4ever/Knowledge-Base/issues/59
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2479 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 76ms · UTC 15:00 · PVG 23:00 · LAX 07:00 · JFK 10:00
    ♥ Do have faith in what you're doing.