1. Giới thiệu
Sau khi cài đặt Apache APISIX thành công, bước tiếp theo là cấu hình các route, upstream và plugin để bắt đầu quản lý lưu lượng API. Apache APISIX hỗ trợ cấu hình linh hoạt thông qua cả API RESTful và file YAML, cho phép bạn dễ dàng điều chỉnh cấu hình theo nhu cầu.
2. Các khái niệm cơ bản trong Apache APISIX
- Route: Định nghĩa cách ánh xạ giữa các request từ client tới dịch vụ backend. Mỗi route có thể bao gồm các thuộc tính như URI, phương thức HTTP, headers và upstream.
- Upstream: Quản lý nhóm server backend để cân bằng tải. Có thể sử dụng nhiều thuật toán cân bằng tải như round-robin, least-connections và consistent-hashing.
- Plugin: Các mô-đun mở rộng giúp xử lý bảo mật, logging, rate limiting, xác thực và nhiều tính năng khác. Plugin có thể được kích hoạt ở mức route, service hoặc global.
- Service: Một lớp trừu tượng để quản lý các route có chung cấu hình upstream và plugin.
- Consumer: Định nghĩa người dùng API, thường được dùng để xác thực và giới hạn truy cập.

3. Cấu hình Route cơ bản

Để tạo một route cơ bản, bạn có thể sử dụng API Admin của APISIX hoặc file cấu hình YAML.
3.1. Sử dụng API Admin
Ví dụ tạo route với API Admin:
curl -i -X PUT http://127.0.0.1:9080/apisix/admin/routes/1 \
-H "X-API-Key: edd1c9f034335f136f87ad84b625c8f1" \
-d '{
"uri": "/hello",
"methods": ["GET"],
"upstream": {
"type": "roundrobin",
"nodes": {
"httpbin.org:80": 1
}
}
}'
Giải thích:
- uri: Đường dẫn của API.
- methods: Các phương thức HTTP được phép (GET, POST, PUT, DELETE).
- upstream: Định nghĩa backend server cho route này.
Truy cập thử:
curl http://127.0.0.1:9080/hello
3.2. Sử dụng file config.yaml
Nếu bạn không muốn sử dụng API Admin, có thể cấu hình trực tiếp trong file config.yaml:
routes:
- id: 1
uri: /hello
methods:
- GET
upstream:
type: roundrobin
nodes:
httpbin.org:80: 1
Khởi động lại APISIX để áp dụng cấu hình:
apisix reload
4. Cấu hình Upstream
Upstream trong APISIX giúp quản lý nhóm server backend và cung cấp tính năng cân bằng tải.
Ví dụ cấu hình upstream với API Admin:
curl -i -X PUT http://127.0.0.1:9080/apisix/admin/upstreams/1 \
-H "X-API-Key: edd1c9f034335f136f87ad84b625c8f1" \
-d '{
"type": "roundrobin",
"nodes": {
"httpbin.org:80": 1,
"mockbin.org:80": 1
},
"retries": 3,
"timeout": {
"connect": 5,
"send": 10,
"read": 10
}
}'
Giải thích:
- type: Thuật toán cân bằng tải (roundrobin, least_conn, consistent_hash).
- nodes: Danh sách backend server.
- retries: Số lần retry nếu kết nối thất bại.
- timeout: Thời gian timeout cho các giai đoạn connect, send và read.
5. Kết hợp Route và Upstream
Liên kết Route với Upstream đã tạo:
curl -i -X PUT http://127.0.0.1:9080/apisix/admin/routes/2 \
-H "X-API-Key: edd1c9f034335f136f87ad84b625c8f1" \
-d '{
"uri": "/api",
"upstream_id": 1
}'
Giải thích:
- upstream_id: Sử dụng ID của upstream đã cấu hình trước đó.
Kiểm tra:
curl http://127.0.0.1:9080/api
6. Cấu hình Plugin
APISIX có hơn 50 plugin hỗ trợ nhiều tính năng như bảo mật, logging, giám sát, caching và xác thực.
Ví dụ kích hoạt plugin rate-limiting:
curl -i -X PUT http://127.0.0.1:9080/apisix/admin/routes/3 \
-H "X-API-Key: edd1c9f034335f136f87ad84b625c8f1" \
-d '{
"uri": "/limit",
"plugins": {
"limit-count": {
"count": 5,
"time_window": 60,
"rejected_code": 429,
"key": "remote_addr"
}
},
"upstream": {
"type": "roundrobin",
"nodes": {
"httpbin.org:80": 1
}
}
}'
Giải thích:
- count: Số lượng request tối đa trong time_window.
- time_window: Khoảng thời gian tính bằng giây.
- rejected_code: Mã HTTP trả về khi vượt quá giới hạn.
7. Kết luận
Với cấu hình route, upstream và plugin, bạn đã sẵn sàng để bắt đầu quản lý lưu lượng API với Apache APISIX. Bài viết tiếp theo sẽ tập trung vào cấu hình bảo mật và giám sát API.
8. Từ khóa SEO
- cấu hình API Gateway
- Apache APISIX route
- cân bằng tải upstream
- cấu hình plugin APISIX
APISIX Series: 2. Cài đặt Apache APISIX










Add Comment