APISIX Eklenti Orkestrasyonu ve Ağ Geçidi Yapılandırmasına Kısa Bir Bakış

Apache APISIX, API ve mikroservis yönetimi için güçlü bir bulut tabanlı API ağ geçidi. Bu makalede eklenti düzenlemesi ve ağ geçidi yapılandırmasına bakacağız.

Efe Demir

Efe Demir

5 June 2025

APISIX Eklenti Orkestrasyonu ve Ağ Geçidi Yapılandırmasına Kısa Bir Bakış

Modern API ağ geçidi mimarilerinde, eklentileri dinamik olarak düzenleme yeteneği, trafik yönetimi ve istek işleme alanında kritik bir ilerlemeyi temsil eder. Apache APISIX'in eklenti düzenleme sistemi, yönlendirilmiş döngüsüz bir grafik (DAG) yürütme modeli aracılığıyla karmaşık API senaryolarını ele almak için sofistike bir yaklaşım uygular.

💡
Başlamadan önce:

Hala API Dokümantasyonu yazmakta zorlanıyor musunuz? Profesyonel, dinamik API Dokümanlarını otomatik olarak oluşturmak mı istiyorsunuz?

API Dokümantasyonunuzu otomatik olarak güncel tutmak için APIDog'u kullanın!
API parametresinde bir değişiklik yaptığınızda veya yeni bir API sürümüne güncellediğinizde, dokümantasyonunuzu güncellemekle asla uğraşmayın, APIDog her şeyi her zaman güncel tutar!

APIDog ile API Test verimliliğinizi artırın!
APIDog: API Dokümantasyonunuzu Her Zaman Güncel Tutun
button

APISIX'in Eklenti Düzenlemesi, Hızlı Bir Bakış

Temelinde, APISIX'teki eklenti düzenlemesi, eklenti yürütme sonuçlarına bağlı olarak koşullu işleme yolları sağlar ve özel kod gerektirmeden dinamik istek işlemesine olanak tanır. Bu sistem, kontrol ve veri düzlemleri arasında ayrımı korurken, optimize edilmiş durum yönetimi ve bellek içi işleme yoluyla yüksek performans sağlayan dağıtılmış bir mimari aracılığıyla çalışır.

APISIX'te eklenti düzenlemesi

Düzenleme motoru, karmaşık koşullu mantığı etkinleştirirken yürütme bağlamını koruyan sofistike bir durum yönetimi sistemi aracılığıyla eklentileri işler. Zincirdeki her eklenti, sonraki eklentilerin yürütme yolunu etkileyebilir ve dinamik ve duyarlı bir işleme akışı oluşturabilir. Bu yaklaşım, aşağıdaki gibi senaryoları mümkün kılar:

Teknik uygulama, birkaç temel bileşenden yararlanır:

  1. Eklenti bağımlılıklarını ve akışını yöneten bir DAG yürütme motoru
  2. Eklenti yürütme bağlamını korumak için bir durum yönetimi sistemi
  3. Yüksek performanslı işlem için optimize edilmiş bir bellek içi işleme sistemi
  4. Gerçek zamanlı güncellemeler için etcd kullanan dağıtılmış bir yapılandırma sistemi

Bu mimari, durum yönetiminin ve eklenti yürütme yollarının dikkatli bir şekilde optimize edilmesi yoluyla yüksek performansı korurken karmaşık API yönetimi senaryolarını mümkün kılar. Sistem, dinamik eklenti yüklemeyi, özel eklenti entegrasyonunu ve karmaşık koşullu mantığı desteklerken, üretim dağıtımları için gereken performans özelliklerini korur.

APISIX'in eklenti düzenleme sisteminin teknik bileşenleri ve yürütme akışı

APISIX'in eklenti düzenlemesinde, "Bağlam", eklenti yürütme yaşam döngüsü boyunca devam eden paylaşılan bir durumu temsil eder. Bu bağlam, birden fazla yürütme aşamasında çalışır: rewrite, access, before_proxy, header_filter, body_filter ve log. Örneğin, Yürütme Bağlamı şunları korur:

Bu mimariyi uygulayarak, APISIX, kod yerine yapılandırma yoluyla karmaşık API yönetimi gereksinimlerini ele almak için esnek ancak güçlü bir sistem sağlar, operasyonel karmaşıklığı önemli ölçüde azaltırken sistem güvenilirliğini ve performansını korur.

Altyapı Kurulumu, İlk İşler

Güvenli bir APISIX dağıtımının temeli, uygun ağ izolasyonu ve yapılandırmasıyla başlar. İlk olarak, belirli alt ağ yapılandırmalarıyla özel bir ağ oluşturun:

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

Bu ağ yapılandırması, APISIX bileşenleri arasında uygun izolasyonu ve iletişimi sağlar.

Temel Bileşenleri Dağıtın

ETCD Yapılandırması

ETCD, yapılandırma merkezi olarak hizmet verir. Uygun güvenlik ayarlarıyla dağıtın:

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

Bu yapılandırma, uygun veri kalıcılığını ve ağ erişilebilirliğini sağlar.

APISIX Çekirdek Kurulumu

Kapsamlı günlük kaydı ve yapılandırmayla APISIX'i dağıtın:

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

Bu kurulum, yapılandırma ve günlükler için birim bağlamaları içerir.

Güvenliği Uygulayın

Kimlik Doğrulama Katmanı

APISIX, güçlü anahtar tabanlı kimlik doğrulaması sağlar. İşte eksiksiz bir uygulama:

# Kimlik doğrulaması ile bir tüketici oluşturun
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"
        }
    }
}'

# Kimlik doğrulaması ile rotayı yapılandırın
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
        }
    }
}'

Bu yapılandırma, erişim için API anahtarları gerektiren güvenli bir kimlik doğrulama katmanı oluşturur.

Hız Sınırlama Uygulaması

API'lerinizi kötüye kullanımdan korumak için gelişmiş hız sınırlaması kullanın:

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
        }
    }
}'

Bu yapılandırma, Redis tabanlı dağıtılmış hız sınırlaması uygular.

Gelişmiş Hız Sınırlama Stratejileri

Tüketici farklılaştırması ile küme düzeyinde hız sınırlaması için:

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
        }
    }
}'

Bu yapılandırma, hem tüketici kimliğine hem de IP adresine dayalı gelişmiş hız sınırlamasına olanak tanır.

Sağlık İzleme ve Ölçümler

Prometheus Entegrasyonu

Kapsamlı ölçüm toplamasını etkinleştirin:

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
        }
    }
}'

Bu yapılandırma, izleme ve analiz için ayrıntılı ölçüm toplamasını etkinleştirir.

Sistem Yönetimi

Hizmet Başlatma

Kurulumdan sonra, sistemi uygun yapılandırmalarla başlatın:

# Yapılandırmayı başlat
sudo apisix init

# Hizmeti başlat
sudo apisix start

# systemd tabanlı sistemler için
systemctl start apisix

Bu komutlar, uygun sistem başlatma ve hizmet yönetimini sağlar.

Yapılandırma Güncellemeleri

Gelişmiş güvenlik için yönetici API anahtarını güncelleyin:

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

Bu yapılandırma, yönetici API'sinin güvenliğini artırır.

Sonuç

Bu yapılandırmaların kapsamlı bir şekilde uygulanması, sağlam, güvenli ve ölçeklenebilir bir API ağ geçidi altyapısı oluşturur. Kimlik doğrulama, hız sınırlama ve izlemenin birleşimi hem güvenliği hem de güvenilirliği sağlar. Yönetici anahtarlarını güncelleme ve sistem ölçümlerini izleme dahil olmak üzere düzenli bakım, dağıtımın sağlığını korumak için çok önemlidir.

Bu yapılandırmaları, özel gereksinimlerinize ve güvenlik ihtiyaçlarınıza göre ayarlamayı unutmayın. APISIX'in modüler yapısı, eklenti sistemi aracılığıyla kolay genişleme ve özelleştirmeye olanak tanır ve hem basit hem de karmaşık API yönetimi senaryoları için uygun hale getirir.

Explore more

Cursor ile Deepseek R1'i Yerel Olarak Nasıl Kullanılır

Cursor ile Deepseek R1'i Yerel Olarak Nasıl Kullanılır

Yerel DeepSeek R1'i Cursor IDE ile kurun ve yapılandırın. Özel, uygun maliyetli AI kodlama yardımı için.

4 June 2025

Android'de Gemma 3n Nasıl Çalıştırılır?

Android'de Gemma 3n Nasıl Çalıştırılır?

Google AI Edge Gallery'den Gemma 3n'i Android'e kurup çalıştırmayı öğrenin.

3 June 2025

GitHub Eylemleri ile Claude Kodunu Nasıl Kullanılır

GitHub Eylemleri ile Claude Kodunu Nasıl Kullanılır

Claude Code'u GitHub Actions ile entegre edin: Kod incelemeleri, hata düzeltmeleri ve özellik uygulamaları. Kurulum, iş akışları ve geliştiriciler için ipuçları.

29 May 2025

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin