目錄
[前言]:
本文以service和route知識為基礎,通過配置upsream實現nginx的最基礎負載均衡。
我們最終通過Kong API將實現的訪問效果如下:

環境說明
# 開放兩個測試的微服務接口
http://myhost1:8881
http://myhost2:8882
通過konga實現
1. 配置upstream
打開Konga左側列表菜單中的UPSTREAMS, 點擊 CREATE UPSTREAM

這里,只需要寫一個Name,保證Service的配置可以正確匹配到我們就可以了。

既然是負載均衡,自然少不了后端服務,接下來配置在Upstreams進行負載均衡的終端——Targets。
找到我們剛才創建的upstream,然后點擊DETALS

Targets to + ADD TARGET,填寫測試接口信息,完成對UPSTREAM的配置


2. 配置Service發布
配置一個Service,字段Url填寫我們剛剛配置的Upstream的Name

3. 配置Route,匹配規則


提示: 在輸入
hosts,paths,methods時,要按回車!!!
4. 驗證結果
瀏覽器測試
通過Shift+F5 或 Ctrl+Shift+R,不使用緩存進行請求測試

命令行API 測試
$ curl -i -X GET --url http://localhost:8000 --header 'Host: test.app.com'
通過 Kong Admin API實現
route根據paths轉發給相應的service根據host(upstream的name)轉發給 upstream負載均衡至targets,這就是kong的負載均衡執行流程。
下面再學習一下通過Admin API如何完成負責均衡配置
1. 配置upstream
創建upstream
$ curl -X POST localhost:8001/upstreams \
--data "name=app.com"
為upstream配置target
$ curl -X POST localhost:8001/upstreams/app.com/targets \
--data "target=myhost1:8881" \
--data "weight=100"
$ curl -X POST localhost:8001/upstreams/app.com/targets \
--data "target=myhost2:8882" \
--data "weight=100"
等同於創建了如下配置:
upstream upstream.api {
server myhost1:8881 weight=100;
server myhost2:8882 weight=100;
}
2. 配置service
$ curl -X POST localhost:8001/services \
--data "name=my-app-service" \
--data "host=app.com"
3. 配置route(more)
$ curl -X POST localhost:8001/services/a9b8a3e9-826b-47fa-ae78-0fcf111662a1/routes \
--data "name=test-app-route" \
--data "hosts[]=test.app.com" \
--data 'strip_path=false'
或者
$ curl -X POST localhost:8001/routes \
--data "name=test-app-route" \
--data "hosts[]=test.app.com" \
--data "service.id=a9b8a3e9-826b-47fa-ae78-0fcf111662a1" \
--data 'strip_path=false'
[sleepy↓]
