Skip to content

Hướng dẫn cài đặt KONG Gateway và KONGA trên server

Mục lục

  1. Chuẩn bị
  2. Cài đặt KONG Gateway bằng API
  3. Cài đặt KONGA
  4. Cấu hình KONGA
  5. 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
Danh sách các tham số thông port trong câu lệnh docker run đảm bảo như sau:

  • Í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à và 1 là đã chạy được chưa. Nếu chưa thì dùng docker logs <tên-docker> để kiểm tra lỗi. (Hình minh họa) 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 bằng port tương ứng và mở truy cập từ tường lửa cho port đó.

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 . Ví dụ lúc này URL của connection sẽ là: "http://server:PORT/".

Nếu thành công, KONGA sẽ redirect chúng ta đến một màn hình tương tự như sau: image

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

4. Reference: