Tổng quan Apisix
Apache APISIX là một nền tảng API Gateway mã nguồn mở, được phát triển để cung cấp giải pháp điều hành, bảo mật và quản lý API một cách hiệu quả và linh hoạt. Nó hỗ trợ các tính năng mạnh mẽ như cân bằng tải, kiểm soát truy cập, xác thực, và quản lý luồng dữ liệu. Được xây dựng trên nền tảng LuaJIT và sử dụng OpenResty, APISIX mang lại hiệu suất cao và khả năng mở rộng tốt, phù hợp cho các doanh nghiệp cần xử lý lượng lớn yêu cầu API với độ trễ thấp. Bên cạnh đó, nó còn có một hệ sinh thái phong phú với nhiều plugin, giúp dễ dàng tích hợp và mở rộng chức năng theo nhu cầu cụ thể của người dùng.
Cài đặt Apache APISIX
Hướng dẫn này hướng dẫn bạn cách xây dựng và chạy Apache APISIX trên môi trường của bạn.
Bước 1: Cài đặt Apache APISIX
Chúng ta có thể được cài đặt thông qua gói RPM , Image Docker , Helm Chart hoặc Repository . Bạn có thể cài đặt thông qua bất kỳ một trong các tùy chọn này.
Cài đặt qua Repository RPM (CentOS 7)
Phương pháp cài đặt này phù hợp với CentOS 7.
Nếu Repository của OpenResty chưa được cài đặt , sử dụng lệnh sau sẽ giúp bạn tự động cài đặt cả repository cho OpenResty và Apache APISIX.
sudo yum install -y https://repos.apiseven.com/packages/centos/apache-apisix-repo-1.0-1.noarch.rpm
Trong trường hợp repository OpenResty đã được cài đặt rồi , lệnh sau sẽ giúp bạn tự động cài đặt repository.
sudo yum-config-manager --add-repo https://repos.apiseven.com/packages/centos/apache-apisix.repo
Chạy các lệnh sau để cài đặt repository và Apache APISIX.
# View the information of the latest apisix package
sudo yum info -y apisix
# Will show the existing apisix packages
sudo yum --showduplicates list apisix
# Will install the latest apisix package
sudo yum install apisix
# Will install a specified version (2.10.3 in this example) apisix package
sudo yum install apisix-2.10.3-0.el7
Cài đặt thông qua Gói RPM (CentOS 7)
Đầu tiên, tải xuống gói RPM và để vào thư mục ./apisix
sudo mkdir -p apisix
sudo yum install -y https://repos.apiseven.com/packages/centos/apache-apisix-repo-1.0-1.noarch.rpm
sudo yum clean all && yum makecache
sudo yum install -y --downloadonly --downloaddir=./apisix apisix
Sau đó, sao chép ./apisix
thư mục vào máy chủ đích và tiến hành chạy lệnh sau để cài đặt.
sudo yum install ./apisix/*.rpm
Cài đặt qua Docker
Vui lòng tham khảo Cài đặt Apache APISIX với Docker .
Cài đặt qua Biểu đồ Helm
Vui lòng tham khảo Cài đặt Apache APISIX với Biểu đồ Helm .
Cài đặt từ Source code
Lưu ý: nếu bạn muốn đóng gói Apache APISIX cho một nền tảng cụ thể, vui lòng tham khảo https://github.com/api7/apisix-build-tools và thêm hỗ trợ tại đó. Hướng dẫn ở đây chỉ dành cho những người muốn thiết lập môi trường phát triển Apache APISIX của họ.
Thực hiện theo các bước bên dưới để cài đặt thông qua gói phát hành nguồn.
1. Cài đặt các thành phần phụ thuộc
curl https://raw.githubusercontent.com/apache/apisix/master/utils/install-dependencies.sh -sL | bash -
2. Tạo thư mục
APISIX_VERSION='2.13.3'
mkdir apisix-${APISIX_VERSION}
3. Tải xuống source code.
Bạn cũng có thể tải xuống gói phát hành nguồn Apache APISIX từ trang chủ. Trang web này cũng cung cấp các gói nguồn choApache APISIX, APISIX Dashboard, và APISIX Ingress Controller.
wget https://downloads.apache.org/apisix/${APISIX_VERSION}/apache-apisix-${APISIX_VERSION}-src.tgz
4. Giải nén.
tar zxvf apache-apisix-${APISIX_VERSION}-src.tgz -C apisix-${APISIX_VERSION}
5. Cài đặt thư viện Lua
# Switch to the apisix-${APISIX_VERSION} directory
cd apisix-${APISIX_VERSION}
# Create dependencies
make deps
# Install apisix command
make install
Bước 2: Cài đặt etcd
Bước này chỉ được yêu cầu nếu bạn chưa cài đặt etcd .
Chạy lệnh bên dưới để cài đặt etcd thông qua tệp nhị phân trong Linux:
ETCD_VERSION='3.4.13'
wget https://github.com/etcd-io/etcd/releases/download/v${ETCD_VERSION}/etcd-v${ETCD_VERSION}-linux-amd64.tar.gz
tar -xvf etcd-v${ETCD_VERSION}-linux-amd64.tar.gz && \
cd etcd-v${ETCD_VERSION}-linux-amd64 && \
sudo cp -a etcd etcdctl /usr/bin/
nohup etcd >/tmp/etcd.log 2>&1 &
Hoặc nếu bạn đang chạy trên MacOS, có thể dùng lệnh sau để cài đặt:
brew install etcd
# start etcd server
brew services start etcd
Bước 3: Quản lý máy chủ
Trong thư mục source đã giải nén trước đó, bạn có thể khởi tạo các phần phụ thuộc, bắt đầu dịch vụ và dừng dịch vụ bằng các lệnh. Chạy apisix help
để có danh sách đầy đủ các lệnh có sẵn.
khởi tạo các phụ thuộc
Chạy lệnh sau để khởi tạo tệp cấu hình NGINX và etcd.
# initialize NGINX config file and etcd
apisix init
Kiểm tra file cấu hình
Chạy lệnh sau để kiểm tra tệp cấu hình. APISIX sẽ tạo nginx.conf
và config.yaml
kiểm tra xem cú pháp của nginx.conf
có đúng không.
# generate `nginx.conf` from `config.yaml` and test it
apisix test
Start Apache APISIX
Chạy lệnh sau để khởi động Apache APISIX.
# start Apache APISIX server
apisix start
Stop Apache APISIX
Cả hai đều apisix quit
có apisix stop
thể dừng Apache APISIX. Sự khác biệt chính là apisix quit
dừng Apache APISIX một cách duyên dáng, đồng thời apisix stop
dừng Apache APISIX ngay lập tức.
Bạn nên sử dụng lệnh “dừng một cách duyên dáng” apisix quit
vì nó đảm bảo rằng Apache APISIX sẽ hoàn thành tất cả các yêu cầu mà nó đã nhận được trước khi dừng. Mặt khác, apisix stop
sẽ kích hoạt buộc tắt máy và sẽ dừng Apache APISIX ngay lập tức. Điều này sẽ khiến các yêu cầu gửi đến đang chờ xử lý không được xử lý trước khi tắt máy.
Để thực hiện tắt máy một cách duyên dáng, hãy chạy:
# stop Apache APISIX server gracefully
apisix quit
Để thực hiện tắt máy bắt buộc, hãy chạy:
# stop Apache APISIX server immediately
apisix stop
Các hoạt động khác
Bạn có thể nhận trợ giúp và tìm hiểu thêm về tất cả các hoạt động có sẵn trong Apache APISIX bằng cách chạy lệnh help
như hiển thị bên dưới.
# show a list of available operations
apisix help
Bước 4: Cập nhật mã thông báo API quản trị viên để bảo mật Apache APISIX
Bạn có thể sửa đổi khóa API quản trị để bảo mật việc triển khai APISIX Apache của mình.
Điều này có thể được thực hiện bằng cách sửa đổi nội apisix.admin_key
dung conf/config.yaml
và khởi động lại dịch vụ.
apisix:
# ... ...
admin_key
-
name: "admin"
key: abcdefghabcdefgh # Modify the original key to abcdefghabcdefgh
role: admin
Sau đó, để truy cập API quản trị, bạn có thể sử dụng key trên.
curl http://127.0.0.1:9080/apisix/admin/routes?api_key=abcdefghabcdefgh -i
Mã trạng thái 200 trong kết quả trả về sẽ cho biết việc truy cập đã thành công.
HTTP/1.1 200 OK
Date: Fri, 28 Feb 2020 07:48:04 GMT
Content-Type: text/plain
... ...
{"node":{...},"action":"get"}
Nếu khóa bạn đã nhập không khớp với giá trị của apisix.admin_key
in conf/config.yaml
, phản hồi có mã trạng thái 401 sẽ cho biết quyền truy cập không thành công.
curl http://127.0.0.1:9080/apisix/admin/routes?api_key=wrong-key -i
HTTP/1.1 401 Unauthorized
Date: Fri, 28 Feb 2020 08:17:58 GMT
Content-Type: text/html
... ...
{"node":{...},"action":"get"}
Bước 5: Build OpenResty cho Apache APISIX
Một số tính năng yêu cầu các mô-đun NGINX bổ sung được đưa vào OpenResty.
Nếu bạn cần những tính năng này, bạn có thể xây dựng APISIX OpenResty. Bạn có thể tham khảo nguồn api7/apisix-build-tools để thiết lập môi trường xây dựng và xây dựng APISIX OpenResty.
Bước 6: Thêm file đơn vị Systemd cho Apache APISIX
Nếu bạn đang sử dụng CentOS 7 và đã cài đặt Apache APISIX thông qua gói RPM , tệp cấu hình sẽ có sẵn và bạn có thể chạy trực tiếp lệnh sau.
systemctl start apisix
systemctl stop apisix
Nếu bạn đã cài đặt Apache APISIX bằng các phương pháp khác, vui lòng tham khảo mẫu tệp cấu hình để biết hướng dẫn sửa đổi và sao chép nó vào /usr/lib/systemd/system/apisix.service
đường dẫn.
[Unit]
Description=apisix
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
Restart=on-failure
WorkingDirectory=/usr/local/apisix
ExecStart=/usr/bin/apisix start -c /usr/local/apisix/conf/config.yaml
ExecStop=/usr/bin/apisix stop
ExecReload=/usr/bin/apisix reload
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
Chạy các lệnh sau để khởi động lại dịch vụ apisix.
systemctl daemon-reload
systemctl restart apisix
systemctl status apisix
Đăng ký liền tay Nhận Ngay Bài Mới
Subscribe ngay
Cám ơn bạn đã đăng ký !
Lỗi đăng ký !
Add Comment