
وكيل عكسي يركز على الأمان أولاً لحماية الويب الحر.
وكيل عكسي يضع الأمان أولاً، صُمم لحماية الويب الحر.
عمليات هادئة على الحافة.
التوثيق • ساحة التجربة • المقاييس • المناقشات • المساهمة
Zentinel هو وكيل عكسي عالي الأداء مبني على Cloudflare Pingora. يوفّر حدوداً صريحة، وسلوكاً متوقعاً، وإعدادات افتراضية بمستوى الإنتاج للبيئات التي يحتاج فيها المشغّلون إلى النوم باطمئنان.
الأداء: أدنى زمن استجابة p99 في المقاييس مقارنةً بـ Envoy وHAProxy وNginx وCaddy. اختبارات تحمّل بمليون طلب بمعدل نجاح 99.95% ودون أي تسريب للذاكرة. محرّك WAF المكتوب بلغة Rust الخالصة يعالج حركة المرور النظيفة بمعدل 912K طلب/ثانية — أسرع 30 مرة من مرجع ModSecurity المكتوب بلغة C++.
نواة جاهزة للإنتاج (الوكيل، التوجيه، TLS، التخزين المؤقت، موازنة التحميل). الوكلاء الفرعيون (Agents) مُصدَّرون بإصدارات مستقلة — WAF وAuth وAI Gateway مستقرة؛ أما البقية فهي في مرحلة بيتا أو ألفا. راجع zentinelproxy.io/agents لمعرفة حالة كل وكيل.
┌────────┐ ┌──────────┐
│ Client │ │ Upstream │
└────┬───┘ └─────▲────┘
│ │
▼ │
╔═══════════ Zentinel (core, single binary) ══════════╤════╗
║ │ ║
║ Listener ─▶ Routing ─▶ Filter chain ─▶ Forward ────┘ ║
║ TLS, H2 priority rate-limit, LB, ║
║ + LRU cache, hooks retries ║
║ │ ║
╚══════════════════════════════╪═══════════════════════════╝
│ UDS / gRPC (v2 agent protocol)
▼
╔═══════ External agents (separate processes) ═══════╗
║ WAF · Auth · Rate-limit · … ║
║ crash-isolated, any language ║
╚════════════════════════════════════════════════════╝
تعود الاستجابة عبر سلسلة الفلاتر عائدةً إلى العميل. تُصدَر سجلات الوصول والمقاييس عند الاكتمال.
يعمل مستوى البيانات (dataplane) كملف تنفيذي واحد. أما منطق الأمان والسياسات الذي يتطلب تحليلاً مكثفاً أو ينطوي على مخاطر تشغيلية فيقيم في وكلاء خارجيين خلف UDS أو gRPC، بحيث لا يستطيع وكيل معطوب إسقاط الوكيل العكسي معه. راجع البيان لمعرفة المنطق، وcrates/proxy/docs/architecture.md لتفاصيل كل مرحلة.
# Install (binary only)
curl -fsSL https://get.zentinelproxy.io | sh
# Install and start as a systemd service (Linux, root or sudo)
curl -fsSL https://get.zentinelproxy.io | sh -s -- --enable-service
# Or via Cargo
cargo install zentinel-proxy
# Or via Docker
docker run -v $(pwd)/zentinel.kdl:/etc/zentinel/zentinel.kdl \
ghcr.io/zentinelproxy/zentinel --config /etc/zentinel/zentinel.kdl
على مضيفات systemd، يقوم سكربت التثبيت أيضاً بإنشاء /etc/systemd/system/zentinel.service، ومقتطف sysusers، وإعداد ابتدائي في /etc/zentinel/zentinel.kdl. تفعيل الخدمة وتشغيلها اختياريان عبر --enable-service. راجع crates/proxy/docs/deployment.md.
احفظ هذا باسم zentinel.kdl — فهو يوجّه localhost:8080 إلى خادم خلفي على المنفذ 8081:
system {
worker-threads 0 // auto-detect CPU cores
}
listeners {
listener "http" {
address "0.0.0.0:8080"
protocol "http"
}
}
routes {
route "default" {
matches {
path-prefix "/"
}
upstream "backend"
}
}
upstreams {
upstream "backend" {
target "127.0.0.1:8081"
}
}
# Run
zentinel --config zentinel.kdl
# Validate config without starting
zentinel test --config zentinel.kdl
هل توجّه الطلبات إلى خادم خلفي عبر HTTPS؟ أضف كتلة tls إلى الـ upstream:
upstreams {
upstream "backend" {
target "api.example.com:443"
tls {
sni "api.example.com"
}
}
}
بدون كتلة tls، يتصل Zentinel عبر HTTP بنص صريح بغض النظر عن المنفذ.
مزيد من الأمثلة: يغطي config/examples/ بوابات API، وموازنة التحميل، وWebSocket، والتخزين المؤقت، وتوجيه الاستدلال، والمزيد. أو استخدم منشئ الإعدادات لتوليد إعداد تفاعلياً.
| الميزة | الوصف |
|---|---|
| أنواع الخدمات | Web وAPI وStatic وBuiltin وInference (LLM/AI) |
| موازنة التحميل | 14 خوارزمية: round-robin، weighted، least connections، Maglev، Peak EWMA، والمزيد |
| الأمان | TLS/mTLS، تحديد المعدل، تصفية GeoIP، WAF، حماية من قنابل zip |
| البروتوكولات الوكيلية (Agentic) | دعم أصلي لـ MCP وA2A — السماح/المنع لكل طريقة ولكل أداة، مستنبط من جسم JSON-RPC بدلاً من الوثوق بالترويسات المنسوخة |
| بروتوكول الوكلاء | وكلاء خارجيون لـ WAF والمصادقة والمنطق المخصص — معزولون عند الأعطال، بأي لغة |
| التخزين المؤقت HTTP | تخزين مؤقت للاستجابات مبني على Pingora مع منع التدافع وإخلاء LRU (خلفيات ذاكرة أو قرص أو هجينة) |
| توجيه WebSocket | متوافق مع RFC 6455 مع فحص الوكلاء لكل إطار وارتباط الجلسة |
| المراقبة | مقاييس Prometheus، تسجيل منظّم، تتبّع OpenTelemetry |
| إعادة التحميل الساخن | تحديثات إعدادات دون توقف عبر SIGHUP مع التحقق والتبديل الذري (المسارات، الـ upstreams، الوكلاء؛ تغييرات المستمعين تتطلب إعادة تشغيل) |
راجع التفصيل الكامل للميزات على zentinelproxy.io/features.