KONG -- 配置 service 並添加 key-auth

    默認狀況下, KONG 監聽下面幾個端口:api

  • 8000   這個端口用於監聽客戶端的 HTTP 請求,並轉發給上游服務
  • 8443   這個端口用於監聽客戶端的 HTTPS 請求,並轉發給上游服務
  • 8001   用於接收配置 KONG 的 Admin API
  • 8444   功能同 8001,只是這個端口接收的是 HTTPS 請求

普通服務:curl

1. 爲 http://mockbin.org 添加一個名爲 example-service 的服務。url

$ curl -i -X POST \
  --url http://localhost:8001/services/ \
  --data 'name=example-service' \
  --data 'url=http://mockbin.org'

2. 爲上面建立的服務添加一個路由spa

$ curl -i -X POST \
  --url http://localhost:8001/services/example-service/routes \
  --data 'hosts[]=example.com'

這樣就配置完成了一個代理服務,經過訪問 KONG 的 example.com ,KONG 會把請求轉發到 http://mockbin.org。插件

注意: /services/ 後面的 example-service 須要和第1步中的 --data 'name=' 的值要同樣。代理

3. 運行下面的命令,會返回 http://mockbin.org 的信息。code

$ curl -i -X GET \
  --url http://localhost:8000/ \
  --header 'Host: example.com'

   注意: 這裏 --header 'Host: ' 的值要和第2步中的 --data 'hosts[]=' 的值要同樣。 blog

 

     一般,咱們都會對提供的服務進行受權認證。KONG 提供了 key-auth 插件,能夠實現認證的功能。路由

添加認證get

4. 配置 key-auth 插件

$ curl -i -X POST \
  --url http://localhost:8001/services/example-service/plugins/ \
  --data 'name=key-auth'

    此時,咱們再次運行 3 中的命令,會獲得相似以下的結果:

HTTP/1.1 401 Unauthorized
...

{
  "message": "No API key found in request"
}

5. 添加一個消費者

$ curl -i -X POST \
  --url http://localhost:8001/consumers/ \
  --data "username=Jason"

6. 爲上面的用戶添加一個 key。下面命令中的 「ENTER_KEY_HERE」 須要替換成想要設置的密鑰。

$ curl -i -X POST \
  --url http://localhost:8001/consumers/Jason/key-auth/ \
  --data 'key=ENTER_KEY_HERE'

7. 在第3步的請求中添加 key 的信息後,能夠正常訪問了。命令以下:

$ curl -i -X GET \
  --url http://localhost:8000 \
  --header "Host: example.com" \
  --header "apikey: ENTER_KEY_HERE"
相關文章
相關標籤/搜索