首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

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

  •  
  •   xiangyuecn · 216 天前 · 3596 次点击
    这是一个创建于 216 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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


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

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

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

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


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


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

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





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

    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1051 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 19ms · UTC 18:29 · PVG 02:29 · LAX 10:29 · JFK 13:29
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1