V2 大佬多过来提问一下
—————————————————————————————————————————————————————————
目前项目接入了很多不同协议的硬件设备,为了识别协议每个都开了一个端口,通过固定的端口去判断是什么厂商协议。
目前情况就是端口泛滥,分布式不知道怎么做。
想整一个网关层开放一个端口一个固定 IP,然后分流去各个服务器处理。求大佬教育!!!!!!!!!!
1
mhycy 2018-08-23 15:30:21 +08:00
端口泛滥分布式不知道怎么做的意思是?
另:固定端口固定 IP 会遇到协议识别问题 |
2
s609926202 2018-08-23 15:31:17 +08:00
占楼问:TCP 下的负载均衡如何获取 client ip,,,
|
3
aino OP @mhycy
1、意思是现在为了识别是那一家厂商的协议就得在服务器上开放一个端口去识别它,想做成之开放一个端口并且能够识别得出是哪家厂商协议的。 2、我想固定端口 IP 主要是为了以后服务器分布式,多 IP,让设备不用更改 IP,就在网关层去分发下去。 |
4
aino OP @s609926202 这个问题问的好!我也想多,nginx 分流下发到服务器可以的,当是服务器上报到设备,分流的情况怎么找到设备的 IP 呢
|
5
mhycy 2018-08-23 15:51:30 +08:00
@aino
设备不更改 IP 也要考虑到机房搬迁的可能性 建议使用域名绑定 ip,这样设备只需要连接之前动态查询现在的 IP 就好 至于网关的单端口多协议负载均衡,有一个前提:协议的定义是已知且容易区分的 需要考虑协议识别的资源消耗,虽说只要识别出个头就可以直接转发了 至于多出来的那个如何读取到客户端 ip 的问题, 代理式负载均衡无解,除非这是路由设备,那么通过 NAT 形式是可以拿到源 IP 的 |
6
s609926202 2018-08-23 16:27:12 +08:00
@mhycy
TCP 下我看 AWS 可以开启代理协议标头获取 IP,试过一次把站点搞崩后没敢再试、 |
7
mhycy 2018-08-23 16:29:13 +08:00
|
8
keramist 2018-08-23 16:29:55 +08:00 via Android
haproxy 行的话就上吧
|
9
vanlink 2018-08-23 17:12:19 +08:00
@s609926202
请参考 https://www.weibo.com/ttarticle/p/show?id=2313501000014137437101208291 一般没这么用的,需要改造真实服务器的 tcp 协议栈。 还是得在应用层做文章。 |
10
vanlink 2018-08-23 17:13:37 +08:00
那得做应用层协议识别,费时费力,一般没这么干的。
|