คู่มือฉบับย่อเกี่ยวกับการจัดระเบียบปลั๊กอิน APISIX และการกำหนดค่าเกตเวย์

Apache APISIX: เกตเวย์ API จัดการ API & microservices. บทความนี้จะพูดถึง Plugin Orchestration & Gateway Configuration

อาชว์

อาชว์

30 August 2025

คู่มือฉบับย่อเกี่ยวกับการจัดระเบียบปลั๊กอิน APISIX และการกำหนดค่าเกตเวย์

Apidog สำหรับองค์กร

การติดตั้งแบบ On-Premises

SSO & RBAC

รองรับมาตรฐาน SOC 2

สำรวจ Apidog Enterprise

ในสถาปัตยกรรม API gateway สมัยใหม่ ความสามารถในการจัดระเบียบปลั๊กอินแบบไดนามิกแสดงถึงความก้าวหน้าครั้งสำคัญในการจัดการทราฟฟิกและการประมวลผลคำขอ ระบบการจัดระเบียบปลั๊กอินของ Apache APISIX ใช้แนวทางที่ซับซ้อนในการจัดการสถานการณ์ API ที่ซับซ้อนผ่านรูปแบบการดำเนินการ directed acyclic graph (DAG)

💡
ก่อนที่เราจะเริ่มต้น:

ยังคงมีปัญหาในการเขียนเอกสาร API อยู่ใช่ไหม? ต้องการสร้างเอกสาร API แบบไดนามิกที่เป็นมืออาชีพโดยอัตโนมัติหรือไม่?

ใช้ APIDog เพื่อให้เอกสาร API ของคุณเป็นปัจจุบันอยู่เสมอโดยอัตโนมัติ!
ไม่ต้องกังวลกับการอัปเดตเอกสารของคุณทุกครั้งที่คุณทำการเปลี่ยนแปลงในพารามิเตอร์ API หรืออัปเดตเป็น API เวอร์ชันใหม่ APIDog จะอัปเดตทุกอย่างอยู่เสมอ!

เพิ่มประสิทธิภาพการทดสอบ API ของคุณด้วย APIDog!
APIDog: ทำให้เอกสาร API ของคุณเป็นปัจจุบันอยู่เสมอ
button

ภาพรวมโดยย่อเกี่ยวกับการจัดระเบียบปลั๊กอินของ APISIX

โดยหลักแล้ว การจัดระเบียบปลั๊กอินใน APISIX ช่วยให้เส้นทางการประมวลผลแบบมีเงื่อนไขขึ้นอยู่กับผลลัพธ์การดำเนินการปลั๊กอิน ทำให้สามารถจัดการคำขอแบบไดนามิกได้โดยไม่ต้องใช้โค้ดที่กำหนดเอง ระบบนี้ทำงานผ่านสถาปัตยกรรมแบบกระจายที่รักษาส่วนแยกระหว่างระนาบควบคุมและระนาบข้อมูล ในขณะเดียวกันก็รับประกันประสิทธิภาพสูงผ่านการจัดการสถานะที่เหมาะสมและการประมวลผลในหน่วยความจำ

การจัดระเบียบปลั๊กอินใน APISIX

เครื่องมือการจัดระเบียบประมวลผลปลั๊กอินผ่านระบบการจัดการสถานะที่ซับซ้อน ซึ่งรักษาสภาพแวดล้อมการดำเนินการในขณะที่เปิดใช้งานตรรกะแบบมีเงื่อนไขที่ซับซ้อน ปลั๊กอินแต่ละตัวในสายโซ่สามารถมีอิทธิพลต่อเส้นทางการดำเนินการของปลั๊กอินที่ตามมา ทำให้เกิดโฟลว์การประมวลผลแบบไดนามิกและตอบสนอง แนวทางนี้ช่วยให้สถานการณ์ต่างๆ เช่น:

การนำไปใช้งานทางเทคนิคใช้ประโยชน์จากส่วนประกอบสำคัญหลายอย่าง:

  1. เครื่องมือการดำเนินการ DAG ที่จัดการการพึ่งพาปลั๊กอินและโฟลว์
  2. ระบบการจัดการสถานะสำหรับการรักษาสภาพแวดล้อมการดำเนินการปลั๊กอิน
  3. ระบบการประมวลผลในหน่วยความจำที่ปรับให้เหมาะสมสำหรับการทำงานที่มีประสิทธิภาพสูง
  4. ระบบการกำหนดค่าแบบกระจายโดยใช้ etcd สำหรับการอัปเดตแบบเรียลไทม์

สถาปัตยกรรมนี้ช่วยให้สถานการณ์การจัดการ API ที่ซับซ้อน ในขณะเดียวกันก็รักษาประสิทธิภาพสูงผ่านการเพิ่มประสิทธิภาพการจัดการสถานะและเส้นทางการดำเนินการปลั๊กอินอย่างระมัดระวัง ระบบรองรับการโหลดปลั๊กอินแบบไดนามิก การรวมปลั๊กอินแบบกำหนดเอง และตรรกะแบบมีเงื่อนไขที่ซับซ้อน ทั้งหมดนี้ยังคงรักษาลักษณะประสิทธิภาพที่จำเป็นสำหรับการปรับใช้การผลิต

ส่วนประกอบทางเทคนิคและโฟลว์การดำเนินการของระบบการจัดระเบียบปลั๊กอินของ APISIX

ในการจัดระเบียบปลั๊กอินของ APISIX "Context" แสดงถึงสถานะที่ใช้ร่วมกันซึ่งคงอยู่ตลอดวงจรการดำเนินการปลั๊กอิน บริบทนี้ทำงานในหลายขั้นตอนการดำเนินการ: rewrite, access, before_proxy, header_filter, body_filter และ log ตัวอย่างเช่น Execution Context จะรักษา:

ด้วยการใช้สถาปัตยกรรมนี้ APISIX จึงมีระบบที่ยืดหยุ่นแต่ทรงพลังสำหรับการจัดการข้อกำหนดการจัดการ API ที่ซับซ้อนผ่านการกำหนดค่าแทนโค้ด ซึ่งช่วยลดความซับซ้อนในการดำเนินงานได้อย่างมากในขณะที่ยังคงรักษาความน่าเชื่อถือและประสิทธิภาพของระบบ

การตั้งค่าโครงสร้างพื้นฐาน สิ่งแรกที่ต้องทำ

พื้นฐานของการปรับใช้ APISIX ที่ปลอดภัยเริ่มต้นด้วยการแยกและการกำหนดค่าเครือข่ายที่เหมาะสม ก่อนอื่น ให้สร้างเครือข่ายเฉพาะที่มีการกำหนดค่าซับเน็ตเฉพาะ:

docker network create \
--driver=bridge \
--subnet=172.18.0.0/16 \
--ip-range=172.18.5.0/24 \
--gateway=172.18.5.254 \
apisix

การกำหนดค่าเครือข่ายนี้ช่วยให้มั่นใจได้ถึงการแยกและการสื่อสารที่เหมาะสมระหว่างส่วนประกอบ APISIX

ปรับใช้ส่วนประกอบหลัก

การกำหนดค่า ETCD

ETCD ทำหน้าที่เป็นศูนย์กลางการกำหนดค่า ปรับใช้ด้วยการตั้งค่าความปลอดภัยที่เหมาะสม:

docker run -it --name etcd-server \
-v $(pwd)/example/etcd_conf/etcd.conf.yml:/opt/bitnami/etcd/conf/etcd.conf.yml \
-p 2379:2379 \
-p 2380:2380 \
--network apisix \
--ip 172.18.5.10 \
--env ALLOW_NONE_AUTHENTICATION=yes bitnami/etcd:3.4.9

การกำหนดค่านี้ช่วยให้มั่นใจได้ถึงความคงอยู่ของข้อมูลและการเข้าถึงเครือข่ายที่เหมาะสม

การติดตั้ง APISIX Core

ปรับใช้ APISIX ด้วยการบันทึกและการกำหนดค่าที่ครอบคลุม:

docker run --name test-api-gateway \
-v $(pwd)/example/apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml \
-v $(pwd)/example/apisix_log:/usr/local/apisix/logs \
-p 9080:9080 \
-p 9091:9091 \
-p 9443:9443 \
--network apisix \
--ip 172.18.5.11 \
-d apache/apisix

การตั้งค่านี้รวมถึงการติดตั้งโวลุ่มสำหรับการกำหนดค่าและบันทึก

ใช้ความปลอดภัย

เลเยอร์การตรวจสอบสิทธิ์

APISIX มีการตรวจสอบสิทธิ์ตามคีย์ที่แข็งแกร่ง นี่คือการใช้งานที่สมบูรณ์:

# สร้างผู้บริโภคพร้อมการตรวจสอบสิทธิ์
curl http://127.0.0.1:9180/apisix/admin/consumers -H "X-API-KEY: $admin_key" -X PUT -d '
{
    "username": "jack",
    "plugins": {
        "key-auth": {
            "key": "auth-one"
        }
    }
}'

# กำหนดเส้นทางด้วยการตรวจสอบสิทธิ์
curl http://127.0.0.1:9180/apisix/admin/routes/1 -H "X-API-KEY: $admin_key" -X PUT -d '
{
    "methods": ["GET"],
    "uri": "/index.html",
    "plugins": {
        "key-auth": {}
    },
    "upstream": {
        "type": "roundrobin",
        "nodes": {
            "127.0.0.1:1980": 1
        }
    }
}'

การกำหนดค่านี้สร้างเลเยอร์การตรวจสอบสิทธิ์ที่ปลอดภัยซึ่งต้องใช้คีย์ API สำหรับการเข้าถึง

การใช้งานการจำกัดอัตรา

ปกป้อง API ของคุณจากการละเมิดด้วยการจำกัดอัตราที่ซับซ้อน:

curl http://127.0.0.1:9180/apisix/admin/routes/1 -H "X-API-KEY: $admin_key" -X PUT -d '
{
    "uri": "/index.html",
    "plugins": {
        "limit-count": {
            "count": 2,
            "time_window": 60,
            "rejected_code": 503,
            "key": "remote_addr",
            "policy": "redis",
            "redis_host": "127.0.0.1",
            "redis_port": 6379,
            "redis_password": "password",
            "redis_database": 1,
            "redis_timeout": 1001
        }
    },
    "upstream": {
        "type": "roundrobin",
        "nodes": {
            "127.0.0.1:1980": 1
        }
    }
}'

การกำหนดค่านี้ใช้การจำกัดอัตราแบบกระจายตาม Redis

กลยุทธ์การจำกัดอัตราขั้นสูง

สำหรับการจำกัดอัตราในระดับคลัสเตอร์ด้วยความแตกต่างของผู้บริโภค:

curl -i http://127.0.0.1:9180/apisix/admin/routes/1 \
-H "X-API-KEY: $admin_key" -X PUT -d '
{
    "uri": "/index.html",
    "plugins": {
        "limit-count": {
            "count": 2,
            "time_window": 60,
            "rejected_code": 503,
            "key_type": "var_combination",
            "key": "$consumer_name $remote_addr"
        }
    },
    "upstream": {
        "type": "roundrobin",
        "nodes": {
            "127.0.0.1:9001": 1
        }
    }
}'

การกำหนดค่านี้ช่วยให้สามารถจำกัดอัตราที่ซับซ้อนตามทั้งข้อมูลประจำตัวของผู้บริโภคและที่อยู่ IP

การตรวจสอบสุขภาพและเมตริก

การรวม Prometheus

เปิดใช้งานการรวบรวมเมตริกที่ครอบคลุม:

curl -i http://127.0.0.1:9180/apisix/admin/routes/1 \
-H "X-API-KEY: $admin_key" -X PUT -d '
{
    "uri": "/metrics",
    "plugins": {
        "prometheus": {
            "prefer_name": true,
            "metrics": {
                "http_status": true,
                "latency": true,
                "bandwidth": true
            }
        }
    },
    "upstream": {
        "type": "roundrobin",
        "nodes": {
            "prometheus:9090": 1
        }
    }
}'

การกำหนดค่านี้เปิดใช้งานการรวบรวมเมตริกโดยละเอียดสำหรับการตรวจสอบและการวิเคราะห์

การจัดการระบบ

การเริ่มต้นบริการ

หลังจากการติดตั้ง ให้เริ่มต้นระบบด้วยการกำหนดค่าที่เหมาะสม:

# เริ่มต้นการกำหนดค่า
sudo apisix init

# เริ่มบริการ
sudo apisix start

# สำหรับระบบที่ใช้ systemd
systemctl start apisix

คำสั่งเหล่านี้ช่วยให้มั่นใจได้ถึงการเริ่มต้นระบบและการจัดการบริการที่เหมาะสม

การอัปเดตการกำหนดค่า

อัปเดตคีย์ API ของผู้ดูแลระบบเพื่อความปลอดภัยที่ดียิ่งขึ้น:

deployment:
  admin:
    admin_key:
      - name: "admin"
        key: newsupersecurekey
        role: admin

การกำหนดค่านี้ช่วยเพิ่มความปลอดภัยของ API ของผู้ดูแลระบบ

บทสรุป

การนำการกำหนดค่าเหล่านี้ไปใช้อย่างครอบคลุมสร้างโครงสร้างพื้นฐาน API gateway ที่แข็งแกร่ง ปลอดภัย และปรับขนาดได้ การรวมกันของการตรวจสอบสิทธิ์ การจำกัดอัตรา และการตรวจสอบทำให้มั่นใจได้ทั้งความปลอดภัยและความน่าเชื่อถือ การบำรุงรักษาเป็นประจำ รวมถึงการอัปเดตคีย์ผู้ดูแลระบบและการตรวจสอบเมตริกระบบ เป็นสิ่งสำคัญในการรักษาความสมบูรณ์ของการปรับใช้

โปรดจำไว้ว่าให้ปรับการกำหนดค่าเหล่านี้ตามข้อกำหนดเฉพาะและความต้องการด้านความปลอดภัยของคุณ ธรรมชาติแบบโมดูลาร์ของ APISIX ช่วยให้ขยายและปรับแต่งได้ง่ายผ่านระบบปลั๊กอิน ทำให้เหมาะสำหรับสถานการณ์การจัดการ API ทั้งแบบง่ายและซับซ้อน

Explore more

วิธีเรียกใช้ Mistral Small 3.1 ในเครื่องของคุณเองโดยใช้ Ollama: คู่มือทีละขั้นตอน

วิธีเรียกใช้ Mistral Small 3.1 ในเครื่องของคุณเองโดยใช้ Ollama: คู่มือทีละขั้นตอน

เรียนรู้วิธีรัน Mistral Small 3.1 (AI โอเพนซอร์ส) บนเครื่องคุณเองด้วย Ollama คู่มือนี้ง่าย ครอบคลุมการติดตั้ง, การใช้งาน, และเคล็ดลับ

19 March 2025

NDJSON 101: การสตรีมผ่าน HTTP Endpoints

NDJSON 101: การสตรีมผ่าน HTTP Endpoints

ค้นพบ NDJSON: สตรีมข้อมูลผ่าน HTTP อย่างมีประสิทธิภาพ! คู่มือนี้อธิบายพื้นฐาน, ข้อดีเหนือ JSON, และวิธี Apidog ช่วยทดสอบ/แก้จุดบกพร่อง endpoint สตรีมมิ่ง

18 March 2025

วิธีนำเข้า/ส่งออกข้อมูลคอลเลกชันใน Postman

วิธีนำเข้า/ส่งออกข้อมูลคอลเลกชันใน Postman

ในบทความนี้ เราจะคุยเรื่องนำเข้า/ส่งออก Postman และวิธีแก้ปัญหาที่ยืดหยุ่นกว่า ไม่จำกัดจำนวนครั้ง

18 March 2025

ฝึกการออกแบบ API แบบ Design-first ใน Apidog

ค้นพบวิธีที่ง่ายขึ้นในการสร้างและใช้ API