Cài đặt docker: Hướng dẫn trong file docker-install.md
Clone repo này về hoặc tải về file docker-compose.yml ở trên hoặc tạo file docker-compose.yml với nội dung file tương tự như trên
git clone https://github.com/vanloctech/kong-postgre-konga
Truy cập vào thư mục "kong-postgre-konga"
cd kong-postgre-konga
Chạy docker-compose
docker-compose up -d
Hệ thống sẽ tự động pull các image docker nếu chưa có và tự động tạo và run các container tương ứng.
Trường hợp trong repo này sử dụng cdsl postgre
cho kong gateway api
với giá trị các biến là:
- Tên database kong sử dụng: kong
- Tài khoản: kong
- Mật khẩu: kong
Với konga
cũng sử dụng csdl trên nhưng database có tên là: konga
Sau khi chạy hoàn tất output có thể như sau:
Creating network "kong_kong-net" with the default driver
Creating kong_db_1 ... done
Creating kong_kong-migrations_1 ... done
Creating kong_konga-prepare_1 ... done
Creating kong_kong_1 ... done
Creating kong_kong-migrations-up_1 ... done
Creating kong_konga_1 ... done
"http://localhost:8000" là đường dẫn kong proxy (hiện tại sẽ chưa có gì vì chưa setup services và routes)
"http://localhost:8001" là đường dẫn kong admin
Kiểm tra các container docker của các image có lỗi không sử dụng:
docker logs <tên hoặc mã container>
Konga chạy port 1337, truy cập vào konga với đường dẫn: "http://localhost:1337"
Nếu lần đầu konga sẽ yêu cầu tạo tài khoản, điền các thông tin username, email, password để tạo tài khoản, sau đó login vào
Tiếp theo sẽ tạo connection giữa konga và kong admin, đặt tên cho connection và Kong Admin URL
là: http://kong:8001
Nhấn vào kết nối, sẽ kết nối thành công
VD: có 2 microservice là:
service123.com/users
service456.com/products
Tiếp theo vào tab Services -> tạo service theo hình dưới
Tên service nhập tên muốn đặt
Field host
nhập link: service123.com/users
Các field khác để trống hoặc để mặc định, sau đó bấm tạo
Tạo các service khác tương tự.
Tạo route cho service, click vào service muốn tạo chọn route -> chọ add route
Phần host có thể để trống mà không cần điền hoặc có thể điền tên host vd: example.com, lúc call api thì thêm header là Host: example.com
Phần paths cũng có thể để trống hoặc điền vào các đường dẫn api muốn setup vd: /users. Các phần khác để mặc định và save lại
Khi dùng thì call api vd: localhost:8000/users với header là Host: example.com
Tham khảo:
https://docs.konghq.com/gateway-oss/2.4.x/getting-started/configuring-a-service/
https://docs.konghq.com/gateway-oss/2.4.x/auth/
https://docs.konghq.com/gateway-oss/2.4.x/admin-api/
Phần này sẽ sử dụng Rating limit
plugin của Kong
Thảm khảo:
https://docs.konghq.com/getting-started-guide/2.4.x/protect-services/
VD để giới hạn 5 request mỗi phút từ client, được phép lưu trữ local ta sử dụng Admin api như sau:
curl -i -X POST http://localhost:8001/plugins \
--data name=rate-limiting \
--data config.minute=5 \
--data config.policy=local
Để hủy giới hạn sử dụng Update thông tin (enable or disable) hoặc delete plugin rate-limit
https://docs.konghq.com/gateway-oss/2.4.x/admin-api/#update-plugin
https://docs.konghq.com/gateway-oss/2.4.x/admin-api/#delete-plugin
Phần này sẽ sử dụng Proxy Caching plugin
của Kong
Tham khảo:
https://docs.konghq.com/getting-started-guide/2.4.x/improve-performance/
Tham khảo:
https://docs.konghq.com/getting-started-guide/2.4.x/secure-services/
*Cảm thấy phần này không cần thiết vì các microservice có các tài khoản người dùng và cần sử dụng auth riêng.
Tham khảo:
https://docs.konghq.com/getting-started-guide/2.4.x/load-balancing/
Tham khảo link dưới phần secure ở gần cuối
https://medium.com/devopsturkiye/kong-api-gateway-installing-configuring-and-securing-dfea423ee53c