備忘録

頭の整理のために書いています

Kong入門

基本チュートリアルどおり

  • 設定ファイル(デフォルト)の場所
etc/kong/kong.conf.default

コピーして使いましょう。

$ cp /etc/kong/kong.conf.default /etc/kong/kong.conf
  • 設定ファイルのチェック
$ kong check /etc/kong/kong.conf 
  • デフォルトでlistenしているポート

:8000 => httpリクエストを受け付けて、上流サービスへフォワードするポート

:8001 => 管理者向けAPIのポート

  • サービスの登録

管理者向けポートの以下のエンドポイントにPOSTします。

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

成功したら下記のようなレスポンス

HTTP/1.1 201 Created
Content-Type: application/json
Connection: keep-alive

{
   "host":"mockbin.org",
   "created_at":1519130509,
   "connect_timeout":60000,
   "id":"92956672-f5ea-4e9a-b096-667bf55bc40c",
   "protocol":"http",
   "name":"example-service",
   "read_timeout":60000,
   "port":80,
   "path":null,
   "updated_at":1519130509,
   "retries":5,
   "write_timeout":60000
}
Back to TOC

Permalink
  • サービス用のルーティング作成
$ curl -i -X POST \
  --url http://localhost:8001/services/example-service/routes \
  --data 'hosts[]=example.com'

成功時のレスポンス

HTTP/1.1 201 Created
Content-Type: application/json
Connection: keep-alive

{
   "created_at":1519131139,
   "strip_path":true,
   "hosts":[
      "example.com"
   ],
   "preserve_host":false,
   "regex_priority":0,
   "updated_at":1519131139,
   "paths":null,
   "service":{
      "id":"79d7ee6e-9fc7-4b95-aa3b-61d2e17e7516"
   },
   "methods":null,
   "protocols":[
      "http",
      "https"
   ],
   "id":"f9ce2ed7-c06e-4e16-bd5d-3a82daef3f9d"
}

これでプロキシの準備完了

プロキシのリクエストはデフォルト:8000番ポートであることをお忘れなく。

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

管理者向けのAPI一覧

https://docs.konghq.com/0.14.x/admin-api/

素晴らしい。。Kong