• 请不要在回答技术问题时复制粘贴 AI 生成的内容
xiangyuecn
V2EX  ›  程序员

把 Ngnix 装成 Windows 服务,本地愉快的上了负载均衡

  •  
  •   xiangyuecn ·
    xiangyuecn · Jul 21, 2018 · 6262 views
    This topic created in 3030 days ago, the information mentioned may be changed or developed.

    知道各位 v2 大佬都是不用鼠标的,我还是喜欢用 Win7,水土不服来喷 哈

    ngnix 虽然提供了 Windows 下的安装包,但要手动运行,手动 doge,还有配置起来感觉重复文字比较多,臃肿。所以故事开始了:很多很多年前写了一个 bat 批处理...


    github: https://github.com/xiangyuecn/Nginx-Windows-Service-Manager

    说明书: https://www.jianshu.com/p/65737635983d

    28 replies  •  2020-01-03 23:42:18 +08:00
    ysc3839
    ysc3839
    Jul 21, 2018 via Android
    1
    以 SYSTEM 用户运行 nginx 有安全隐患,应该使用限制权限的用户来运行。
    loading
    loading
    Jul 21, 2018
    2
    @ysc3839 虽然干掉 windows 理论上比干掉 nginx 要简单,请问应该如何配置呢?
    xiangyuecn
    xiangyuecn
    OP
    Jul 21, 2018
    3
    @ysc3839 本地虽然不太在意账户控制,刚刚查了一下 winsw 可以设置服务的运行账户,有时间再来升级一下
    gftfl
    gftfl
    Jul 21, 2018
    4
    哪要这么麻烦。UPUPW 走起。
    xiangyuecn
    xiangyuecn
    OP
    Jul 21, 2018
    5
    @gftfl 我还要 dobbo,还要数据库中间件,现在啃书中,京东 618 囤的书一本都没看完(滑稽
    ysc3839
    ysc3839
    Jul 21, 2018 via Android
    6
    @loading 用 sc config 可以配置服务运行所用的用户,具体要怎么写我无法使用电脑,不知道。
    Dragonish3600
    Dragonish3600
    Jul 21, 2018
    7
    正确方法是用 AD 的 Service account 去运行。。
    zhuanzh
    zhuanzh
    Jul 21, 2018 via Android
    8
    但是 win 版的 nginx 有什么意义呢 官方都不推荐
    ragnaroks
    ragnaroks
    Jul 21, 2018
    9
    我其实有点奇怪,为什么 Windows 下不能托管任意非 GUI 程序,就像 systemd 那样
    chengxiao
    chengxiao
    Jul 21, 2018
    10
    Win 下不是也可以跑 Docker 吗?
    alamaya
    alamaya
    Jul 21, 2018
    11
    没意义,不会有公司在 win 下跑 nginx 吧,根本发挥不出性能
    xiangyuecn
    xiangyuecn
    OP
    Jul 21, 2018
    12
    @zhuanzh 本地开发是 Windows 环境,没有多余的机器搞测试服务器,内存吃紧还不敢开虚拟机,doge
    zzzmode
    zzzmode
    Jul 21, 2018 via Android
    13
    后台服务可以用 nssm 管理,本地使用的话 win 下可以试试 caddy 替代 nginx
    luob
    luob
    Jul 21, 2018 via iPhone
    14
    开个 docker 不就好了……
    tomczhen
    tomczhen
    Jul 21, 2018
    15
    然而 IIS 自带负载均衡模块,Application Request Route 了解一下。
    skylancer
    skylancer
    Jul 21, 2018
    16
    @zhuanzh 我记得当年 nginx 不支持个什么特性的时候被 Windows 版本秒天秒地来着- -
    ysc3839
    ysc3839
    Jul 21, 2018 via Android
    17
    @ragnaroks 任务计划程序也许可以实现?
    xiangyuecn
    xiangyuecn
    OP
    Jul 22, 2018
    18
    @tomczhen 单 IIS SSL 配置一项看到就想吐,Server 2008 存储的证书莫名其妙经常重启服务器就没法访问,全系列密码套件不知道怎么升级,调整顺序重启必须服务器,用过 ngnix 后发现原来世界这么美好 ( doge
    ryd994
    ryd994
    Jul 22, 2018 via Android❤️1
    19
    Nginx on Windows 是基于 select 的,就是个玩具
    Windows 下乖乖用 IIS 去,内核态处理 HTTP 请求的天顶星科技
    ryd994
    ryd994
    Jul 22, 2018 via Android
    20
    @chengxiao
    @luob
    两位,docker on Windows 其实是 docker on Linux on virtualbox
    msg7086
    msg7086
    Jul 22, 2018
    21
    非生产环境无所谓的。生产环境要用 Windows 的话 IIS 妥妥的,性能上天。
    Librazy
    Librazy
    Jul 22, 2018
    22
    @ryd994 不不不,1709 之后有 LCoW
    neoblackcap
    neoblackcap
    Jul 22, 2018
    23
    IIS 用了 IOCP,nginx 用 select 作为 IO 复用,官方文档都说 windows 版是一个玩具,Windows 生产环境负载均衡上 nginx 简直就是在玩。

    @ryd994 我记得有 hyper-v 的支持,性能按道理应该会好一些
    juhezw
    juhezw
    Jul 22, 2018❤️1
    24
    @loading 服务选项 服务的属性 登陆, 自建一个 users 组的用户就行了,给 nginx 需要访问的目录以权限就 OK 了
    sungkyu
    sungkyu
    Jul 22, 2018
    25
    楼主,Winsw1.9.exe 那两个链接挂了
    xiangyuecn
    xiangyuecn
    OP
    Jul 22, 2018
    26
    @sungkyu bat 里面的是 13 年以前的,readme 里面已更新找到的可用链接,好像那时候 sun 还是 sun,不是 oracle (滑稽
    xiangyuecn
    xiangyuecn
    OP
    Jul 22, 2018
    27
    @ryd994 @msg7086 @neoblackcap 嗯嗯,本地用的,线上酌情使用 ngnix 玩耍吧,小流量不怕。


    不过架构上还是要有负载均衡这层,性能优化上的事是后话,不能因为架构问题导致系统后面不能扩容。看到好几篇那种单机带不动了, 申请好几台服务器,然后发现不支持扩容,只能单机跑就尴尬了,WebService 这层还好,数据库这层如果不能扩容估计要进重构火葬场,哈~


    今早上压测了一下:win7 4G 8 核 笔记本

    结果:除了 https ngnix 只能单进程单核处理 https 握手占用 cpu 外,其余性能和直连 iis 的 tps 不相上下。





    静态资源 http 请求 iis 跑快了还会出错,囧:

    ragnaroks
    ragnaroks
    Jan 3, 2020
    28
    #9
    挖个坟,就是此贴促生了 Wind ( https://github.com/ragnaroks/Wind2 )项目,当然现在 2 年过去了已经是 Wind2 了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2205 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 125ms · UTC 13:25 · PVG 21:25 · LAX 05:25 · JFK 08:25
    ♥ Do have faith in what you're doing.