kong Api网关使用(搭配konga)
程序员文章站
2022-03-14 21:18:28
...
kong Api网关使用(搭配konga)
搭建docker运行环境:
docker-compose :参考https://github.com/Kong/docker-kong/blob/master/compose/docker-compose.yml
可以去dockerHub看部署方式: https://hub.docker.com/_/kong
我这里由于一些原因,写成了bash命令启动模式(使用了hos模式,没有去掉暴露端口)
#!/bin/bash
docker run -d --name kong-database \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
postgres:9.6
sleep 10
docker run --rm \
--link kong-database:kong-database \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
kong kong migrations bootstrap
docker run -d --name kong \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=127.0.0.1" \
-e "KONG_CASSANDRA_CONTACT_POINTS=127.0.0.1" \
-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 \
--volume "/home/luslin/flume/:/home/kong/" \
--network=host \
kong
docker run -d -p 1337:1337 \
--name konga \
-e "NODE_ENV=production" \
-e "TOKEN_SECRET=asd12386" \
--network=host \
pantsel/konga
sleep 10 原因是等postgres能对外提供服务
ui使用的是konga
关于kong 与 nginx 配置的关系可以参考:https://www.cnblogs.com/duanxz/p/9776316.html
打开127.0.0.1:1337, 注册用户
写kong admin 的监控链接8001端口
在servies中添加
这里的host
一个典型的 Nginx 配置
upstream helloUpstream {
server localhost:3000 weight=100;
}
server {
listen 80;
location /hello {
proxy_pass http://host; 就是这里的host
}
}
点击刚刚创建的service添加router
这里的router,记得每个输入要回车确认
一个典型的 Nginx 配置
upstream helloUpstream {
server localhost:3000 weight=100;
}
server {
listen 80;
location /hello { 相当于这里的hello
proxy_pass http://host; 就是这里的host
}
}
host与path作用类似,只是访问8000端口的方式不同。在host中添加的需要在访问的头文件中添加Host:touyan
在path中添加的,需要在路径最前面填上/touyan 然后是你要访问的路径。
比如一个访问
POST http://127.0.0.1:8000/api/user/login header 中要加入 Host:touyan
或者 在path中写入 /touyan 去掉host
POST http://127.0.0.1:8000/touyan/api/user/login
8000端口是kong 监听代理链接的端口