KONG v1.3.0 的环境搭建和路由设置
环境
-
- vagrant (coreos)
-
- docker (docker-compose)
-
- postgresql
- kong (1.3.0)
参考网页
Qiita – Docker for MacからVagrant + CoreOSに切り替えた
固定IPとかポートフォワードとかは作業しやすいよう修正
DockerHub – kong
DESCRIPTIONを参考にdocker-composeを記述
Kong – GettingStarted
Kongの使い方を知る① ~Service & Route編~
今回kongaは使ってないです
环境建设
流浪者
请复制CoreOS的Vagrantfile并完成配置。
请按照您喜欢的方式安装docker-compose。
- Qiita – Docker for MacからVagrant + CoreOSに切り替えた
为了使浏览器等也可以访问,将端口8000和8001进行转发。
Docker配置
在kong的DockerHub页面上,详细写了从postgres进行配置的方法。只需将环境变量和端口设置直接写入docker-compose up。
version: "3"
volumes:
kong-vol:
services:
kong-db:
image: "postgres:9.6"
container_name: "kong-db"
environment:
POSTGRES_USER: "kong"
POSTGRES_PASSWORD: "kong"
POSTGRES_DB: "kong"
kong-migrate:
image: "kong:latest"
container_name: "kong-migrate"
depends_on:
- "kong-db"
environment:
KONG_DATABASE: "postgres"
KONG_PG_HOST: "kong-db"
KONG_PG_USER: "kong"
KONG_PG_PASSWORD: "kong"
KONG_CASSANDRA_CONTACT_POINTS: "kong-db"
command: "kong migrations bootstrap"
restart: "on-failure:3"
kong:
image: "kong:latest"
container_name: "kong"
environment:
KONG_DATABASE: "postgres"
KONG_PG_HOST: "kong-db"
KONG_PG_USER: "kong"
KONG_PG_PASSWORD: "kong"
KONG_CASSANDRA_CONTACT_POINTS: "kong-db"
KONG_PROXY_ACCESS_LOG: "/dev/stdout"
KONG_ADMIN_ACCESS_LOG: "/dev/stdout"
KONG_PROXY_ERROR_LOG: "/dev/stderr"
KONG_ADMIN_ERROR_LOG: "/dev/stderr"
KONG_ADMIN_LISTEN: "0.0.0.0:8001, 0.0.0.0:8444 ssl"
ports:
- "8000:8000"
- "8443:8443"
- "8001:8001"
- "8444:8444"
depends_on:
- "kong-migrate"
restart: "on-failure:3"
由于数据库初始化时间问题,kong-migrate和kong启动失败,因此设置了重启。如果有更好的方法,请告诉我。
服务注册
孔 – 入门
当访问管理API(:8001)的 /services 接口时,可以进行服务注册。
$ curl -X POST http://localhost:8001/services --data 'name=example-service' --data 'url=http://mockbin.org' | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 339 100 296 100 43 977 142 --:--:-- --:--:-- --:--:-- 980
{
"host": "mockbin.org",
"created_at": 1570950317,
"connect_timeout": 60000,
"id": "18e5e341-14bf-4998-849e-31d7c10194ef",
"protocol": "http",
"name": "example-service",
"read_timeout": 60000,
"port": 80,
"path": null,
"updated_at": 1570950317,
"retries": 5,
"write_timeout": 60000,
"tags": null,
"client_certificate": null
}
注册一个名为example-service的服务
以下是可以传递的参数说明
了解Kong的使用方法① ~服务和路由篇~
路由设置
当调用/services/<服务名称>时,可以进行根路径的设置。
$ curl -X POST --url http://localhost:8001/services/example-service/routes --data 'hosts[]=localhost' --data 'paths[]=/test' | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 443 100 412 100 31 14531 1093 --:--:-- --:--:-- --:--:-- 14714
{
"id": "44f2c7b0-f263-4faa-af5e-681093067d21",
"tags": null,
"updated_at": 1570950317,
"destinations": null,
"headers": null,
"protocols": [
"http",
"https"
],
"created_at": 1570950317,
"snis": null,
"service": {
"id": "18e5e341-14bf-4998-849e-31d7c10194ef"
},
"name": null,
"preserve_host": false,
"regex_priority": 0,
"strip_path": true,
"sources": null,
"paths": [
"/test"
],
"https_redirect_status_code": 426,
"hosts": [
"localhost"
],
"methods": null
}
当访问localhost:8000/test时,可以设置将请求转发到刚刚注册的example-service的URL上。