Kong, api gateway OpenSource

Kong es una aplicación programada en Lua que se ejecuta en Nginx aprovechando el módulo lua-nginx. Esta base permite que Kong sea extensible a través de una arquitectura de scripts Lua (denominados “complementos”) que se pueden cargar en ‘caliente’, mientras está en ejecución.

Vamos a levantar un entorno rapido usando Docker, para ello creamos la base de datos:


docker run -d –name kong-database \
-p 5432:5432 \
-e “POSTGRES_USER=kong” \
-e “POSTGRES_DB=kong” \
-e “POSTGRES_HOST_AUTH_METHOD=trust” \
postgres:9.6

Ahora, vamos inicializamos con datos el contenedor anterior:


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

Ahora, vamos a crear kong usando Docker:

docker run -d –name kong \
–network=kong-net \
-e “KONG_DATABASE=postgres” \
-e “KONG_DATABASE_PASSWORD=password” \
-e “KONG_PG_HOST=kong-database” \
-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

Consultamos ahora:

⚡ root@docker ~ curl -i -X GET –url http://localhost:8001
HTTP/1.1 200 OK
Date: Sat, 02 Jan 2021 23:02:30 GMT
Content-Type: application/json; charset=utf-8
Connection: keep-alive
Access-Control-Allow-Origin: *
Content-Length: 9223
X-Kong-Admin-Latency: 0
Server: kong/2.2.1