51300520
V2EX  ›  问与答

请问 nginx 怎样主动断开 TCP 长连接

  •  
  •   51300520 · Dec 1, 2018 · 5084 views
    This topic created in 2748 days ago, the information mentioned may be changed or developed.

    nginx 支持长连接代理,我现在想像 HTTP 那样客户端直接连接 nginx,nginx 后面是若干微服务,但是我不知道怎样主动让 nginx 断开连接,比如某个用户登录连续三次失败,我的登录微服务判定该用户有风险,需要断开该用户的连接,我要怎样才能让 nginx 主动断开?

    恐怕做不到是吗?我是不是还是只能自己写网关接入用户才能自主可控,网关连接 nginx,nginx 后面是微服务这种架构?

    我想的是如果可以做到,就可以把自己写网关接入层省了。像 HTTP 那样,用户直接连 nginx,有人用过这种架构嘛?

    4 replies    2018-12-01 14:12:30 +08:00
    watzds
        1
    watzds  
       Dec 1, 2018 via Android
    Keepalive ?也就几秒吧
    whileFalse
        2
    whileFalse  
       Dec 1, 2018
    详细说说场景
    msg7086
        3
    msg7086  
       Dec 1, 2018
    返回 HTTP 444,让 nginx 主动关闭连接。
    046569
        4
    046569  
       Dec 1, 2018
    可以用 ngx_lua 或者 ngx_mruby 模块.
    用户还是链接 Nginx , Nginx 在内部调用模块检查 Redis 中的黑名单,微服务登录失败时写入 Redis 黑名单.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   931 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 21:13 · PVG 05:13 · LAX 14:13 · JFK 17:13
    ♥ Do have faith in what you're doing.