青云把负载均衡器抽象成了三个概念:一是负载均衡器本身;二是监听器,三是后端主机。
负载均衡器分为公网和私有网络两种类型, 前者可以同时关联多个公网IP,但它绑定的后端只能是公网服务器/私有网络路由器/公网IP, 后者直接与某个私有网络关联,后端是这个私有网络中某台服务器的某端口。 公网类型的负载均衡器可以通过路由器的端口映射实现与私有网络某主机端口连接。
监听器代表负载均衡器对外提供的协议类型和端口; 后端主机页面上的"端口"指的是后端主机上服务进程监听的端口。
只要用户创建负载均衡器、监听器、主机,就可以在界面里完成负载均衡器的所有操作。
一条转发策略,代表一条从域名到主机和端口的关联规则,所以如果是同一个服务有多个域名, 可以配置在同一个转发策略里。 如果是两个不同的服务,即使是同一IP不同端口,也要配置在不同的转发策略里。
示例
添加第一个服务
需要将内网中的一台服务器作为beta服务器, 外部用户可以通过域名 beta.nufair.com 从公网访问,实现方法:
-
在青云控制台 [计算与网络 -> 公网IP]中购买IP地址 nufairIP: 123.234.34.5
-
在域名 (nufair.com) DNS配置中增加一条A记录:beta -> 123.234.34.5
-
新建 [路由器] nufairRouter, 绑定nufairIP;
-
新建 [私有网络] nufairNet, 绑定nufairRouter;
-
新建 [主机] beta-app.nufair.com, IP: 192.168.100.121, 加入 nufairNet;
-
在 beta-app.nufair.com 中部署应用,服务监听端口 3000;
-
新建 [负载均衡器] nufairLB, IP:192.168.100.4, 绑定nufairNet;
-
[nufairRouter -> 端口转发]中添加规则 http-route: tcp 80 -> 192.168.100.4 80
-
[nufairRouter -> 基本属性]中点击[防火墙],在其中增加规则:允许80端口下行;
-
[nufairLB -> 转发策略] 中新建转发策略:
名称:app-beta 匹配方式:匹配任意规则
及其规则:
规则类型: 按域名转发 规则内容: beta.nufair.com
- nufairLB 中新建一个[监听器] http-listener, 为其[添加后端],
名称:beta 网络:受管私有网络 主机:192.168.100.121 端口:3000
创建完成后,在[转发策略]一栏中点击[绑定],选择[app-beta].
添加第二个服务
需要将内网中另一台服务器作为生产服务器,通过域名nufair.com和www.nufair.com访问。
-
青云控制台中购买一台主机,IP: 192.168.100.21, 在上面部署生产应用,服务监听端口3000;
-
在域名 (nufair.com) DNS配置中增加两条A记录: @ -> 123.234.34.5 www -> 123.234.34.5
-
[nufairLB -> 转发策略] 中新建转发策略:
名称:app-production 匹配方式:匹配任意规则
及其规则:
规则类型: 按域名转发 规则内容: nufair.com www.nufair.com
- nufairLB -> http-listener -> 添加后端:
名称:prod 网络:受管私有网络 主机:192.168.100.21 端口:3000
创建完成后,在[转发策略]一栏中点击[绑定],选择[app-production].
说明:
转发策略的规则里,如果是按域名转发,注意一级域名,如nufair.com,
它实际上是*.nufair.com
,当监听器的某个后端绑定了这样的规则后,
它后面的后端再绑定这个一级域名下的二级域名将无效,
例如将test.nufair.com指向100.21服务器的4500端口,
[nufairLB -> 转发策略] 中新建转发策略:
名称:app-test 匹配方式:匹配任意规则
及其规则:
规则类型: 按域名转发 规则内容: test.nufair.com
名称:test 网络:受管私有网络 主机:192.168.100.21 端口:4500
创建完成后,在[转发策略]一栏中点击[绑定],选择[app-test].
应用修改后,test.nufair.com仍然指向3000端口上的服务, 原因是它作为nufair.com的二级域名,被app-production中的一级域名覆盖了, 解决方法是,从app-production中去掉"nufair.com".
修改负载均衡器IP地址后需要注意: 要相应修改路由器中端口转发中目标(也就是负载均衡器)的IP地址。
参考: