Api Gateway DevOps

6 bước cài đặt Apisix

apisix-logo2

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ý !

Tags

Add Comment

Click here to post a comment

Đă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ý !