内网一个网站但是多个服务器主机, 大概有 3 台可用的, 部分时间段会开启 6 台, 来应对并发高峰, 现在先假设只有 3 台是可用的
202.192.xxx.129
202.192.xxx.131
202.192.xxx.134
一台可以访问内网也可以访问外网的隧道客户端主机 (上下行 100 兆)
端口设置:
81 -> nginx 反代到 202.192.xxx.129
82 -> nginx 反代到 202.192.xxx.134
83 -> nginx 反代到 202.192.xxx.131
84 -> nginx 反代到 202.192.xxx.134
81 隧道到服务端主机 1 的 8081
82 隧道到服务端主机 2 的 8081
83 隧道到服务端主机 3 的 8081
84 隧道到服务端主机 4 的 8081
4 台有公网 ip 的隧道服务端主机 (均为上下行 1 兆) (师弟手里的服务器)
服务主机 1,2,3,4
8081 -> http
8083 -> ngrok controll link
分配一批子域名到对应的主机的公网 ip
主机 1: ngrok-1.xxxx.cn
主机 2: ngrok-2.xxxx.cn
主机 3: ngrok-3.xxxx.cn
主机 4: ngrok-4.xxxx.cn
还有一个爬虫(缓存)主机, 目前部署在的云服务器里面, 然后通过隧道爬虫内网的网站, 再对外提供服务
那么如何做这样的隧道结构的负载均衡?
在爬虫那里做一层? 然后内网隧道客户端主机做一层?
爬虫否应该搬到隧道客户端主机?
1
defunct9 2018-01-09 17:07:09 +08:00
看得我头晕,画个图吧
|
2
deepkolos OP |
3
defunct9 2018-01-09 17:46:07 +08:00
折腾这个就为了避过备案?老老实实备案去吧
|
4
defunct9 2018-01-09 17:49:35 +08:00 1
感觉这个架构太累了。
直接外网找单独一个服务器做 openvpn server, 装 nginx 和 openvpn。 内网的三台直接拨通 openvpn,或者中间那台代理 haproxy,拨出去,然后就内外可见了。用 nginx 代理即可。 |
5
N0stalgia 2018-01-09 18:04:56 +08:00
做个 DNS 的解析负载均衡岂不是美滋滋?
|
7
deepkolos OP @defunct9 现在用的是 ngrok 做内网穿透, 但是云服务器带宽只有一兆, 所以想叠加几台, 期末查成绩会并发和流量都比较大大, 因为成绩是以图片的形式展示的, 课表也是
|
8
hljjhb 2018-01-09 19:33:53 +08:00 via Android
为什么要把内网服务器反代到多个端口?
|
9
deepkolos OP @hljjhb 教务系统有多个内网地址, 129 是学校官网暴露出去的, 134, 131 是遍历 ip 测出来的, 有就拿来用嘛
|
11
likuku 2018-01-09 19:54:33 +08:00 1
结构不作大的变更的话,那就:
所有可被访问到的 web 主机前面都放负载均衡器(nginx,haproxy,F5,netscaler 等等),无论内外网,无论哪里访问。 宗旨:把负载均衡插入 web 服务器 与 发起 web 访问的客户端(人类,机器,爬虫,balala) 就可以了。 |
12
okletswin 2018-01-09 19:55:53 +08:00
爬虫(缓存)主机是关键点吧?外部云主机的数据来源是此缓存主机吧?要是的话,和云主机放同一个内网
另外,云主机只有 1M 带宽?现在流行的方案是云主机只有内网 IP,在云主机前加负载均衡,按需调整整体带宽,教务系统这种,其实按流量计费就足够了吧 为什么要把内网服务器反代到多个端口? |
15
hljjhb 2018-01-09 22:52:44 +08:00 1
|
16
just1 2018-01-09 23:05:05 +08:00 via Android 1
简单的方法:
4 台隧道的服务器(ngrok-xx)设置同一个域名。 爬虫本地开 nginx 反代这个域名,4 均衡负载 但是这不好,这是 4to4,内网对应服务器 down 了这台云服务器也没用了。 好的办法: 内网 100m 服务器 nginx 均衡负载,6ip ( nginx 会自己决定走哪个)。4 台 1m 用 nginx 外代,对外暴露域名一致。 爬虫本地开 nginx 反代这个域名,4 均衡负载 |
19
flowfire 2018-01-10 10:57:41 +08:00
emmm 我比较想问的是 202 开头的内网地址。。。。?
|