如果使用 Ngxin 做网关,假设只使用 Nginx 所在机器网卡的一个 IP 地址,在确定连接到 upstream 的( saddr,sport,daddr, dport )四元组中,只有 sport 是可变的。为了突破这个限制,需要在 Nginx 所在的机器配置多个 IP 地址,那么如何才能让 Nginx 随机使用多个本机 IP 地址发起对 Upstream 的链接呢?
Transparent 模式不在讨论范围内,因为需要在 Upstream 和 Nginx 所在的机器修改路由表,难以维护。
1
Livid MOD 如果打开了 keepalive 也需要那么多连接数么?
|
3
keepeye 2019-06-05 14:08:24 +08:00
proxy_bind?
|
4
q137534976 2019-06-05 14:24:17 +08:00
proxy_bind 可以指定源地址,但无法实现随机;
你可以把 Lua 模块编译上,proxy_bind 指定一个变量,用 lua 去动态改这个变量 |
5
pmispig 2019-06-05 14:33:41 +08:00
消息推送服务是指 client -> nginx 长链接,不是 nginx ->upstream 长链接。这种动不动百万并发的歪门邪道少研究
|
6
nekoyaki 2019-06-05 14:37:04 +08:00
我不知道你这个场景具体是 websock 还是 tcp 代理,也不知道其他业务场景,我感觉如果单纯考虑大量“长连接”的话,可能换 haproxy 更合适?
|
7
millken 2019-06-05 16:38:17 +08:00
ngx_lua 很容易实现
|