有用的话点个关注,留言,谢谢啦~~
我这里是VMware上运行的一台虚拟机centos7,ip地址为静态192.168.24.128,装了docker环境,下面演示一下如何使用KONGGW。
KONG你可以理解为是一个加强版的Nginx,在Nginx上多了很多功能,这些功能是由lua语言开发的插件,具体插件可以在kong的相关目录下看到,我会在下文的靠后位置做一个讲解。
1.Create a Docker network
$ docker network create kong-net
33892a744b782e5f7d86032372ff1e32c51d0756e196b0563e16515d6b379218
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
33892a744b78 kong-net bridge local
$ ifconfig
br-33892a744b78: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.18.0.1 netmask 255.255.0.0 broadcast 172.18.255.255
ether 02:42:93:e6:d7:5d txqueuelen 0 (Ethernet)
RX packets 6 bytes 416 (416.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6 bytes 416 (416.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
$ brctl show
bridge name bridge id STP enabled interfaces
br-33892a744b78 8000.024293e6d75d no
2.Start your database (PostgreSQL)
$ docker run -d --name kong-database \
--network=kong-net \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
-e "POSTGRES_PASSWORD=kong" \
postgres:9.6
3.Prepare your database (Migrations)
$ docker run --rm \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_USER=kong" \
-e "KONG_PG_PASSWORD=kong" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
kong:1.5.1-centos kong migrations bootstrap
4.Start Kong
这里的 -p 8080:8080我就这么写了,有些人喜欢直接映射到80端口,这个随意哈,个人喜好
$ docker run -d --name kong \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_USER=kong" \
-e "KONG_PG_PASSWORD=kong" \
-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 127.0.0.1:8001:8001 \
-p 127.0.0.1:8444:8444 \
kong:1.5.1-centos
--------------------这里是各个端口号的作用--------------
8000:HTTP Proxy API
8443:HTTPS Proxy API
8001:HTTP Admin API
8444:HTTPS Admin API
5.Use Kong
$ curl -i http://localhost:8001/
---------------看看是不是有下面的信息出来,有的话就成功了-----------
HTTP/1.1 200 OK
Date: Tue, 15 Dec 2020 01:05:20 GMT
Content-Type: application/json; charset=utf-8
Connection: keep-alive
Access-Control-Allow-Origin: *
Server: kong/1.5.1
Content-Length: 6971
X-Kong-Admin-Latency: 147
6.安装 KongA
$ docker run -p 1337:1337 \
--network=kong-net \
-e "TOKEN_SECRET=konga" \
-e "DB_ADAPTER=postgres" \
-e "DB_HOST=kong-database" \
-e "DB_PORT=5432" \
-e "DB_USER=kong" \
-e "DB_PASSWORD=kong" \
-e "DB_DATABASE=konga_database" \
-e "NODE_ENV=development" \
--name konga \
pantsel/konga:latest
到这里就都装完了,下面开始使用
访问:http://{your server’s public ip}:1337
就是你那个虚拟的的ip地址,我这里就是
http://192.168.24.128:1337
进去第一件事就是注册,登录,这个过程我就不放了哈,很简单的。
初次进来先点击1,填上2的两个信息就可以了,然后重新切回1,会看到图二
!!! :这里填写http://kong:8001可能会报错,请把kong替换成你的kong所在旧机器地址,例如: http://192.168.24.128:8001
1.上面的1、2、3是我们等会要操作的顺序
我这里是这么操作的:我有一个elasticsearch服务,是在服务器9200端口的,图上可以看到的吧。那我现在要做的就是去访问KONG的8000端口,然后让KONG给我们转发到这个9200端口上来,实际上就是Nginx的功能。
这里你可以docker拉一个tomcat镜像启动起来,tomcat是8080端口,一样的,这个你自己选择。如果你想直接跟着我这个做,那我把我启动elasticsearch的代码也放下面了
拉去镜像
$ docker pull elasticsearch:7.10.1
运行镜像
$ docker run --name=elasticsearch -d -p 9200:9200 -p 9300:9300 你的镜像id
启动好访问就可以看到下面的图了
2.下面开始操作KONGA
只填第一个Name,完了就是这样
添加完成就是这样的
下面点击service去创建
就填写这四个,其余全部默认就好
接下来咱们创建一个router
我的主机是windows的,去你的hosts文件修改一下(我这里的路径是C:\Windows\System32\drivers\etc),加一行这个。如果你是linux系统那就是/etc/hosts文件修改一下,记得ctrl+s保存一下
然后咱们刷新一下,在cmd下输入 ipconfig /flushdns
好了,基本上该配置的都配置完了,咱们验证一下这个elasticsearch.ray.com的8000端口,/myes路径能不能访问到咱们的es
这样就说明KONG给我们把流量转发过来了。
----------------------好了,下面咱们开始讲一下相关插件的问题-------------
其实KONG就是对openresty做了一层封装,那么咱们再去kong服务里找一下openresty的目录,可以看到这里有个lualib
进到lualib目录,再进到resty目录,可以看到很多lua语言开发的插件
有兴趣的可以研究一下,自己开发一个玩玩,这里就不做过多介绍了。
下面咱们再去界面上讲一下Consumers 这个概念
然后咱们回到ROUTES,点开你的routes,添加这个插件
再添加这个插件
好了,然后咱们再次访问一下刚才的地址,可以看到这次需要输入账号密码才能进去,说明开启了密码登录,输入你刚才的账号密码就能登陆了