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

2018-12-01 01:55:29 +08:00
 51300520

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

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

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

4475 次点击
所在节点    问与答
4 条回复
watzds
2018-12-01 10:04:16 +08:00
Keepalive ?也就几秒吧
whileFalse
2018-12-01 11:23:12 +08:00
详细说说场景
msg7086
2018-12-01 13:06:41 +08:00
返回 HTTP 444,让 nginx 主动关闭连接。
046569
2018-12-01 14:12:30 +08:00
可以用 ngx_lua 或者 ngx_mruby 模块.
用户还是链接 Nginx , Nginx 在内部调用模块检查 Redis 中的黑名单,微服务登录失败时写入 Redis 黑名单.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/513232

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX