安裝和配置Kong的過程很是坎坷,安裝采用的是docker,根據(jù)官方doc很簡單即使英文再不好也認(rèn)識Doc和install吧,盡量不要去百度安裝方法因為很多的教程都是老版本的和新版本有很大的改動,在這吃了很大虧。

image.png
一定看好版本號!點擊install后選擇docker安裝。
根據(jù)里邊的步驟走就可以了很清晰。
1. docker network create kong-net
2. docker run -d --name kong-database \
--network=kong-net \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
postgres:9.6
3. docker run --rm \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
kong:latest kong migrations bootstrap
4. docker run -d --name kong \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
-e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
-e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \
-e "KONG_PROXY_ERROR_LOG=/dev/stderr" \
-e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \
-e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \
-p 8000:8000 \
-p 8443:8443 \
-p 8001:8001 \
-p 8444:8444 \
kong:latest
安裝好后運行看看有沒有成功,如果出現(xiàn)一堆json說安裝成功了。
curl -i http://localhost:8001/
接下來我們要做的就是訪問kong的8000端口給我們轉(zhuǎn)發(fā)到其他服務(wù)器。
網(wǎng)上大部分教程都是0.13.x之前的,我們安裝的是最新版本admin api已經(jīng)改了所以在這里卡了半天,如果你安裝的是0.13.x之后的下面的方法是不可以用的,因為已經(jīng)取消了apis這個接口。

image.png
新版本思路大概就是先添加一個服務(wù)(Service)在添加一個路由(Route)之后的訪問只要用了這個路由都會轉(zhuǎn)發(fā)到添加的服務(wù)上。
// 創(chuàng)建一個服務(wù),名字叫test.service,url可以是自己的服務(wù)器地址,一會
//我要把所有請求都轉(zhuǎn)發(fā)到百度
curl -i -X POST http://localhost:8001/services -d "name=test.service" -d "url=http://www.baidu.com/"
//成功后會返回以下json,id會用到
{
"id": "0c61e164-6171-4837-8836-8f5298726d53",
"created_at": 1422386534,
"updated_at": 1422386534,
"name": "my-service",
"retries": 5,
"protocol": "http",
"host": "example.com",
"port": 80,
"path": "/some_api",
"connect_timeout": 60000,
"write_timeout": 60000,
"read_timeout": 60000,
"tags": ["user-level", "low-priority"]
}
//添加一個路由,service.id是上邊獲取的,paths可以看做一個標(biāo)記只要帶baidu的都會轉(zhuǎn)發(fā)到http://www.baidu.com/
curl -i -X POST --url http://localhost:8001/routes/ \
-d 'protocols[]=http&protocols[]=https' \
-d 'paths=/baidu' \
-d 'service.id=9a2522a3-f846-4561-8154-564116403cdd'
接下來安裝一個可視化的工具,konga,第一次用盡量用上邊的方法添加服務(wù)和路由,因為工具是英文的在添加服務(wù)和路由時都是一大堆表單很容易填錯,其實需要填寫的就那么兩項。
接下來是安裝過程,直接打開github搜konga。
docker pull pantsel/konga
docker run -p 1337:1337 \
--network kong-net \ //開始的時候我們創(chuàng)建了network 一定要在一個network下不然ping不同,也連不上
--name konga \
-e "NODE_ENV=production" \ // or "development" | defaults to 'development'
-e "TOKEN_SECRET=1234" \ //我是瞎寫的
pantsel/konga
安裝好后運行127.0.0.1:1337打開后去創(chuàng)建一個賬號登錄吧。

image.png
這時候需要連接一下我們的kong,點擊Connections 添加名字隨便起一個,Kong Admin URL 填寫我們kong容器的ip地址加端口號,填寫好后點下啟用。

image.png

image.png
菜單一下子多了很多選項,紅框是之前我們添加的服務(wù)和路由,點進去看看吧,以后就照著填寫就好了。

image.png

image.png

image.png
路由上有個開關(guān)(上圖)打開后在訪問時需要帶著Paths,我們之前填寫的是/baidu,如果你的接口是/goods/list,所以我們訪問地址是http://127.0.0.1:8000/baidu/goods/list,kong會給我們轉(zhuǎn)發(fā)到www.baidu.com/goods/list。
結(jié)束?。?!