何もわからないがとりあえず進める
network 作って, cassandra 立ち上げて, マイグレーションして、kong 起動
$ docker network create kong-net
$ docker run -d --name kong-database \
--network=kong-net \
-p 9042:9042 \
cassandra:3
docker run --rm \
--network=kong-net \
-e "KONG_DATABASE=cassandra" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
kong:latest kong migrations bootstrap
docker run -d --name kong \
--network=kong-net \
-e "KONG_DATABASE=cassandra" \
-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
kong を確認
$ curl -sS http://localhost:8001/ | jq .
{
"plugins": {
"enabled_in_cluster": [],
"available_on_server": {
"correlation-id": true,
"pre-function": true,
"cors": true,
"ldap-auth": true,
"loggly": true,
:
}
configuring-a-service
ここをみながら
https://docs.konghq.com/1.3.x/getting-started/configuring-a-service
1. Add your Service using the Admin API
サービス作成
$ curl -i -X POST \
--url http://localhost:8001/services/ \
--data 'name=example-service' \
--data 'url=http://mockbin.org'
HTTP/1.1 201 Created
Date: Wed, 18 Sep 2019 11:46:54 GMT
Content-Type: application/json; charset=utf-8
Connection: keep-alive
Access-Control-Allow-Origin: *
Server: kong/1.3.0
Content-Length: 296
{
"host":"mockbin.org",
"created_at":1568807214,
"connect_timeout":60000,
"id":"ae3c5ee9-3d44-49bc-8869-1f7f0f58afc1",
"protocol":"http",
"name":"example-service",
"read_timeout":60000,
"port":80,
"path":null,
"updated_at":1568807214,
"retries":5,
"write_timeout":60000,
"tags":null,
"client_certificate":null
}
サービス確認
$ curl -s http://localhost:8001/services | jq .
{
"next": null,
"data": [
{
"host": "mockbin.org",
"created_at": 1568807214,
"connect_timeout": 60000,
"id": "ae3c5ee9-3d44-49bc-8869-1f7f0f58afc1",
"protocol": "http",
"name": "example-service",
"read_timeout": 60000,
"port": 80,
"path": null,
"updated_at": 1568807214,
"retries": 5,
"write_timeout": 60000,
"tags": null,
"client_certificate": null
}
]
}
2. Add a Route for the Service
サービスにルート追加
$ curl -i -X POST \
--url http://localhost:8001/services/example-service/routes \
--data 'hosts[]=example.com'
HTTP/1.1 201 Created
Date: Wed, 18 Sep 2019 11:55:08 GMT
Content-Type: application/json; charset=utf-8
Connection: keep-alive
Access-Control-Allow-Origin: *
Server: kong/1.3.0
Content-Length: 408
{
"id":"72a9d29f-6571-43c3-beef-c02e6ccbf699",
"tags":null,
"updated_at":1568807708,
"destinations":null,
"headers":null,
"protocols":["http","https"],
"created_at":1568807708,
"snis":null,
"service":{"id":"ae3c5ee9-3d44-49bc-8869-1f7f0f58afc1"},
"name":null,
"preserve_host":false,
"regex_priority":0,
"strip_path":true,
"sources":null,
"paths":null,
"https_redirect_status_code":426,
"hosts":["example.com"],
"methods":null
}
サービス確認。前と同じ
$ curl -s http://localhost:8001/services | jq .
{
"next": null,
"data": [
{
"host": "mockbin.org",
"created_at": 1568807214,
"connect_timeout": 60000,
"id": "ae3c5ee9-3d44-49bc-8869-1f7f0f58afc1",
"protocol": "http",
"name": "example-service",
"read_timeout": 60000,
"port": 80,
"path": null,
"updated_at": 1568807214,
"retries": 5,
"write_timeout": 60000,
"tags": null,
"client_certificate": null
}
]
}
こうすると1サービスだけ得られた
$ curl -s http://localhost:8001/services/example-service | jq .
{
"host": "mockbin.org",
"created_at": 1568807214,
"connect_timeout": 60000,
"id": "ae3c5ee9-3d44-49bc-8869-1f7f0f58afc1",
"protocol": "http",
"name": "example-service",
"read_timeout": 60000,
"port": 80,
"path": null,
"updated_at": 1568807214,
"retries": 5,
"write_timeout": 60000,
"tags": null,
"client_certificate": null
}
3. Forward your requests through Kong
curl -i -X GET \ --url http://localhost:8000/ \ --header 'Host: example.com' HTTP/1.1 200 OK Content-Type: text/html; charset=utf-8 Content-Length: 10695 Connection: keep-alive Server: openresty/1.15.8.2 Date: Wed, 18 Sep 2019 11:59:18 GMT Etag: W/"29c7-XG+PICJmz/J+UYWt5gkKqqAUXjc" Vary: Accept-Encoding Via: kong/1.3.0 X-Kong-Upstream-Status: 200 X-Kong-Upstream-Latency: 444 X-Kong-Proxy-Latency: 541 Kong-Cloud-Request-ID: 42851e60164d317e266bc17f39123263 <!DOCTYPE html><html><head><meta charset="utf-8"><title>Mockbin by Kong</title>...