内容
- SERVICES + ROUTES + UPSTREAMS 配置
- 配置证书
SERVICES + ROUTES + UPSTREAMS 配置
前置条件,需要在 DNS 解析,将指定的域名解析至 Kong 网关服务器
本文以 www.example.cn 为例
实现的效果:用户访问了 https://www.example.cn(提示证书不可信)、http://www.example.cn 会最终将请求发至 目标服务器的目标端口
关键名词解释
UPSTREAMS:Upstream就是隐藏在kong后面的服务,它的name就是Service中的host,upstream中配置的是负载均衡算法,以及健康检查等,这些配置针对的是upstream关联的Target。一个Upstream可以包含多个Target,负载均衡的过程,就是为当前的请求选择一个Target的过程。
Target:Target是IP或者host加端口,是提供服务的最小单位,每个target可以设置不同的权重。
Services:每个Service对应一个upstream,service中配置了对应的upstream的host、port、path等,也就是upstream的地址,以及相关的访问参数。
Route:Route实体定义匹配客户端请求的规则,每个路由都与一个服务相关联,而服务可能有多个与之相关联的路由. 每一个匹配给定路线的请求都将被提交给它的相关服务。
配置
- UPSTREAMS 配置
创建 UPSTREAMS,Name 填写 www_example_cn_upstream 这个按自己的习惯来进行,该名字会在配置 SERVICES 是用到。
创建完成后,点击 DETAILS 进入详情,创建 Targets,多个目标服务器就配置多个 Target
- SERVICES 配置,建立 SERVICE 与 UPSTREAM 的联系
SERVICES > ADD NEW SERVICE, 填写 Name、Protocol、Host、Port。注意这里的 Host 为 upstream 的Name,端口为 upstream target 配置的端口
- ROUTES 配置
进入对应 Service > Routes > ADD ROUTE,配置 Name、Hosts、Https redirect status code、Reserve Host、Protocol
完成以上配置后,对应的网址已经可访问,但由于没有配置 证书,所以访问 https 时会出现不安全提示。
配置证书
配置
到证书购买的平台找到证书并下载——服务器类型为 NGINX 的证书,格式 PEM/KEY
Certificate 填入证书的 PEM 内容
Key 填入证书的 KEY 内容
Server Name Indications 填入 www.example.cn
提交后若发现 https 仍然提示不安全,则试试无痕模式访问
可能出现的问题
问题一:一个 Route 配置了多个hosts,访问 https 时,发现只有一个生效,其他不生效?
解决方式:将其分为多个 Route,一个 hosts 一个 Route