Hướng dẫn cài đặt KONG Gateway và KONGA trên server
Mục lục
- Chuẩn bị
- Cài đặt KONG Gateway bằng API
- Cài đặt KONGA
- Cấu hình KONGA
- Reference:
0. Chuẩn bị
- Quyền quản trị mạng của server, và ít nhất 2 port mạng mở.
- Yêu cầu: Docker, để cài đặt Docker - xem hướng dẫn tại đây Hướng dẫn cài đặt docker
- Các image Docker liên quan:
docker pull kong
docker pull postgres:9.6
pantsel/konga
1. Cài đặt KONG Gateway
1.1. Tạo docker network
docker network create <kong-network-name>
1.2 Cài đặt Postegres
Sau khi pull các Docker Image cần thiết về, ta chạy Docker DB Postgres và cấu hình bằng các lệnh sau, lưu ý lưu lại các thông tin DB để sử dụng ở bước sau (user, db, password,... )
docker run -d --name <docker-kong-database-name> \
--network=<kong-network-name> \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=<kong-database-databasename>" \
-e "POSTGRES_PASSWORD=<kong-database-password>" \
-p 5432:5432 postgres:9.6
docker run --rm --network=<kong-network-name> \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=<docker-kong-database-name>" \
-e "KONG_PG_PASSWORD=<kong-database-password>" \
kong:latest kong migrations bootstrap
1.3 Cài đặt KONG Gateway
Chạy KONG Gateway bằng lệnh docker run như sau:
docker run -d --name <docker-kong-name> --network=<kong-network-name> \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=<docker-kong-database-name>" \
-e "KONG_PG_PASSWORD=<kong-database-password>" \
-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:<PORT>, 0.0.0.0:<PORT> ssl" \
-p <EXTERNAL API GATEWAY PORT>:8000 \
-p <PORT>:8443 \
-p <PORT>:8001 \
-p <PORT>:8444 kong:latest
-
Ít nhất một Port cho tham số của KONG_ADMIN_LISTEN.
-
Mapping một port vào field
với port 8000. Đây sẽ là port mà chúng ta dùng để gọi các API do KONG Gateway quản lý. Chúng ta cần phải allow ufw cho port này để bên ngoài có thể truy cập được API. Các port còn lại có thể có hoặc không (theo nhu cầu).
Sau đó kiểm tra xem 2 Docker, 1 là docker logs <tên-docker>
để kiểm tra lỗi. (Hình minh họa)
2. Cài đặt KONGA
Chuẩn bị DB Postgres (tái sử dụng database đã dùng ở bước trên) bằng lệnh:
docker run --rm --network=<kong-network-name> pantsel/konga \
-c prepare\
-a postgres \
-u postgresql://kong:<kong-database-password>@<docker-kong-database-name>:5432/<kong-database-databasename>
Chạy KONGA bằng lệnh docker run
như sau:
docker run -p <EXTERNAL_KONGA_PORT>:1337 \
--network=<kong-network-name> \
-e "DB_ADAPTER=postgres" \
-e "DB_HOST=<docker-kong-database-name>" \
-e "DB_USER=kong" \
-e "DB_PASSWORD=<kong-database-password>" \
-e "DB_DATABASE=<kong-database-databasename>" \
-e "KONGA_HOOK_TIMEOUT=120000" \
-e "NODE_ENV=production" \
--name <docker-konga-name> \
pantsel/konga
Ta muốn chạy và truy cập KONGA ở port nào thì thay thế field
3. Cấu hình KONGA lần đầu
Nếu không có lỗi xảy ra, ta có thể truy cập được KONGA bằng đường dẫn: http://server:<EXTERNAL_KONGA_PORT>/
. Lần đầu tiên đăng nhập KONGA sẽ yêu cầu chúng ta tạo các tài khoản Admin tương ứng.
Sau đó, KONGA sẽ yêu cầu chúng ta cấu hình connection tương ứng. Lúc này ta sẽ điền Url mà ta đã cài đặt ở bước 1.3, mục
Nếu thành công, KONGA sẽ redirect chúng ta đến một màn hình tương tự như sau:
Vậy là ta đã cấu hình KONG Gateway và KONGA thành công, tiếp theo chúng ta sẽ quan tâm đến việc mapping giữa API Local của chúng ta với KONG Gateway thông qua KONG như thế nào qua các hướng dẫn sau: - Thêm mới một service và route bằng KONGA - Thêm mới một upstream bằng KONGA