Kong 的Service和Route配置使用
Kong的Service和Route实战
-
本文目标:实践Kong的service和route基础配置功能,实现简单的API接口代理功能。
-
实践环境:
- 虚拟机环境:CentOS7 192.168.175.130
- 开发机环境:Win7
-
前期准备:
把windows和CentOS的hosts都添加如下的修改:
192.168.175.130 aaa.com 192.168.175.130 bbb.com
-
基础流程:
- 把一台主机绑定两个域名,在主机上启动两个独立的服务,通过Kong的80端口对外提供服务。
编写测试用的微服务
这里我们使用SpringBoot 完成一个测试API,代码如下:
@RestController
@SpringBootApplication
public class UserApplication {
public static void main(String[] args) {
SpringApplication.run(UserApplication.class, args);
}
@RequestMapping("/v1/user/get")
public String get(HttpServletRequest request) {
return "Hi, man, this is user one ====> " + request.getRequestURL();
}
// 这个方法用来查看Kong转发到Java这边的URL信息
@RequestMapping("/**")
public String defaultValue(HttpServletRequest request){
return "default : " + request.getRequestURL();
}
}
使用命令行工具 mvn clean package
生成jar
包后,把包放到CentOS服务器。
使用下列的命令启动两个服务:
nohup java -Xms32m -Xmx64m -jar user-0.0.1-SNAPSHOT.jar --server.port=9000 &
nohup java -Xms32m -Xmx64m -jar user-0.0.1-SNAPSHOT.jar --server.port=9001 &
首先测试直接通过9000、9001端口的正常可用性。
aaa.com.pngbbb.com.png
配置Kong的Service
打开konga后台管理画面,打开Service,
service-01.png
我们这里新建一个Service.
按图所示, 我们输入9000端口使用的服务
http://localhost:9000/
。然后,点击画面底图的 SUBMIT SERVICE
,完成服务新建。
配置Kong的Route
这里的Route(路由)都必需从一个Service(服务)开始新建。所以,我们点击刚刚新建好的服务名称,点击Routes
,进入Routes列表页, 再点击ADD ROUTE
,进入Route新建画面。
route-02.png
在填写 Hosts
,Paths
,Methods
这三个空行时,记得输入一个信息后,要按一下回车,才算输入成功(这里被小坑了一下)。完成后,点击底部绿色按钮,完成Route新建。
验证配置结果
输入 http://aaa.com/v1/user/get
应该能正常访问:
aaa.com-ok.png
输入 http://bbb.com/v1/user/get
, 会发现访问出错。
因为我们在上面的route配置时,限定了访问URL的域名过滤,也就是说 目前只支持包含 aaa.com
这个域名的接口访问。
如果你的服务器只绑定了一个域名,看到这里,可以路过后面的部分 :)。
多域名配置
跟上面的步骤类似,我们为 bbb.com 这个域名 绑定 9001端口的服务。
service-bbb.com.pngroute-03.png
此时访问 http://bbb.com/v1/user/get
就可以拿到正常的返回值。
至此, 最基础的Kong 配置已经完成、次回はUPSTREAM機能をやって見よう