通过域名访问提供HTTP服务的组件
本文适用于应用开发者和运维人员
部署到 Rainbond 的提供 HTTP 协议服务的组件如何被访问是本文描述的重点。Rainbond 的网关服务设计成可直接面向公网环境,因此使用 Rainbond 网关可以直接管理企业所有业务的公网流量流向。在对外提供服务的场景中,访问 HTTP 服务最常见的方式是使用域名。企业通常对外只有一个外网 IP 地址,端口资源特别 80/443 端口资源非常有限,使用域名的方式可以很好的复用端口。
接下来我们开始操作绑定一个域名到 Rainbond 网关并访问到已部署的组件。
前提条件
- 已成功部署可访问的提供 HTTP 服务的组件,比如基于源代码部署任意一个 Demo。
- 准备一个可以使用的域名并做好 DNS 解析(测试情况下可以做本地解析,正式使用请配置好正确的 DNS 解析)
操作流程
-
确认前提条件已经准备就绪 假设准备的域名为 www.example.com
-
配置网关策略 为了便于用户配置网关策略,管理和新增策略的的入口有三个,分别是:团队视图/网关/访问策略管理页面;应用视图/网关策略管理页面;组件管理面板,端口管理下;不同的管理页面主要是管理的策略范围不同,添加的方式一 致。添加策略主要分为两部分配置:
路由规则
和访问目标
。我们在路由规则中填写www.example.com
这个域名,在访问目标中选择已经部署的 Demo 组件确认保存即可。 -
验证策略是否生效 直接点击已经添加的策略发起访问,正常打开组件页面即已配置成功。
了解原理和更多配置参数
Rainbond 网关实现可以认为是一个 ingress-controller,基于 openresty 1.19.3.2
版本实现。用户配置的策略会被翻译成 Kubernetes Ingress 资源,然后自动在 Rainbond 网关中生效。如何生成的 Kubernetes Ingress 资源是 Rainbond 内部实现对于用户透明,因此这里暂不做详细解读,这里主要讲解配置策略时除了域名以为其中支持的参数。
路由参数
- 域名: 最主要的路由参数,上文例子中我们只设置了这一个参数,同一个域名可以重复设置,路由访问不同的组件目标,服务于灰度发布场景。
- 请求路径: 在域名相同的情况下,可以根据不同的请求路径来区分请求不同的组件服务。
- 路径重写: 可以使用变量,结合正则表达式和标志位实现 URL 重写以及重定向。
- 请求头: 使用请求头来区分不同的请求路由主要应用于灰度发布场景中。
- HTTPs 证书: 选择配置了 HTTPs 证书即将当前策略升级为 HTTPS,同时支持配置 HTTP 转移策略,包括 HTTPS/HTTP 共存和 HTTP 强转 HTTPS。HTTPs 证书需要在证书管理中提前上传添加。 Rainbond Cloud 版本中目前支持自动签发证书,即根据配置的域名自动匹配已有证书,若不存在则调用第三方平台自动完成签发,随后完成证书绑定。
- 权重: 当多条策略的上述路由参数全部一致时,权重即可生效。设置不同的权重访问到不同的组件(一般情况下是同一个业务的不同版本同时部署多个组件),适用于灰度发布场景。
代理参数设置
代理参数需要在策略添加后在管理列表中点击参数设置进行更改,支持动态生效。
-
连接超时时间 定义与上游服务器(upstream)建立连接的超时时间. 单位是秒, 默认: 75.
-
请求超时时间 设置将请求传输到上游服务器(upstream)的超时时间. 单位是秒, 默认: 60. 仅在两次连续写入操作之间设置超时时间, 而不是为整个请求的传输. 如果上游服务器服务器在此时间内未收到任何内容,则关闭连接.
-
响应超时时间 定义从上游服务器(upstream)读取响应的超时时间. 单位是秒, 默认: 60. 仅在两个连续的读操作之间设置超时, 而不是为整个响应的传输. 如果上游服务器在此时间内未传输任何内容, 则关闭连接.
-
上传限制 设置上传内容(或请求正文)的最大限制, 将大小设置为 0 将不作限制. 单位是 Mb, 默认: 1.
-
自定义请求头 设置了自定义请求头后, 每个发往上游服务器(upstream)的请求都会带上这些请求头.
-