Cấu hình Kong quản lý các APIs từ các backend servers

Đây là bài nằm trong tập hợp những bài viết về Kong API Gateway. Tham khảo các bài biết khác theo đường dẫn dưới đây

Series bài viết về Kong API Gateway
Bài 1: Kong API Gateway là gì?
Bài 2: Hướng dẫn cách cài đặt Kong API Gateway
Bài 3: Cấu hình Kong quản lý các APIs từ các backend servers (Bài viết hiện tại)
Bài 4: Cấu hình bảo mật cho Kong API Gateway
Bài 5: Cấu hình các tính năng nâng cao khác của Kong

Ở các bài viết trước các bạn đã biết các lý thuyết cơ bản về Kong API Gateway và cách cài đặt chúng. Bài này sẽ hướng dẫn cấu hình kết nối Kong tới các APIs bạn cần quản lý.



Ở đây để tiện cho việc cấu hình tôi dùng Kong với chế độ DB-less mode. Tham khảo cách cài đặt Kong ở bài trước.

Để đơn giản tôi lấy REST APIs từ trang web dưới đây
https://reqres.in

Để cấu hình kết nối Kong tới một API của bạn. Theo trình tự ta đi lần lượt theo các bước sau

Cấu hình một upstream trỏ đến server chứa APIs

Tiếp theo đó là cấu hình các services và các routes bên trong service

Tham khảo cấu hình trong file kong.yml ở đây.

Tham khảo và tải về thư mục mẫu ở đây.

Đi đến thư mục bạn vừa tải về

Chạy các thành phần trong docker compose file

docker-compose -f kong-with-db-mode.yaml up -d

Để ngừng và xóa toàn bộ thành phần vừa chạy

docker-compose -f kong-with-db-mode.yaml down

Kiểm tra cú pháp sau khi đã sửa file với câu lệnh sau
docker exec -t kong kong config parse /usr/local/kong/declarative/kong.yml

Cập nhật cấu hình mới với câu lệnh sau
docker exec -t kong kong reload

Vì server của APIs dùng để test ở trên chạy với giao thức https nên bạn kiểm tra kết quả ở đường dẫn dưới đây
https://localhost:8443/api/users

Trên đây là việc cấu hình một API tới Kong ở chế độ Db-less mode. Khi dùng với chế độ có lưu xuống database thì để cài đặt các thuộc tính như upstreams, services, routes, ... thì bản chất là phải gửi các REST request lên Kong Admin ở hai đường dẫn
HTTP : http://localhost:8001
HTTPS : http://localhost:8443

Ví dụ với câu lệnh để tạo mới một service
curl -i -X POST  --url http://localhost:8001/services/ --data 'name=example-service' --data 'url=http://mockbin.org'

Việc cấu hình này khá phức tạp và tốn thời gian nên khuyến khích cài Konga và quản lý các thành phần này trên giao diện web

Trên thực tế khi có nhiều APIs thì việc cấu hình sẽ phức tạp hơn, cần thay đổi nhiều thuộc tính hơn.
Các bạn vui lòng tham khảo thêm tài liệu trên trang chủ của Kong


Tham khảo thêm
https://docs.konghq.com
https://docs.konghq.com/install/docker/
https://docs.konghq.com/1.4.x/getting-started/quickstart/



Tiếp tục cập nhật ...