تكرار السؤال: …
الإجابة المختصرة
صُمم Kestrel بنظام I/O غير حاجب مبني فوق مسبار المقابس (Socket Pipelines) وذاكرة MemoryPools؛ ويوضع خلف Reverse Proxy (كـ Nginx أو IIS) للحماية وإدارة الـ SSL.
الشرح
يعتمد Kestrel على واجهة System.IO.Pipelines التي تقرأ البيانات مباشرة من مقابس الشبكة إلى كتل ذاكرة مشتركة بدون تخصيص متكرر في الـ Heap. في بنية الإنتاج، يفضل وضع خادم Reverse Proxy أمامه للتعامل مع شهادات SSL، والتحكم في مهل الاتصال البطيئة (Slowloris)، وموازنة الحمل بين نسخ Kestrel المتعددة.
مثال بالكود
// تكوين حدود Kestrel في Program.cs
builder.WebHost.ConfigureKestrel(options => {
options.Limits.MaxConcurrentConnections = 1000;
options.Limits.MaxRequestBodySize = 10 * 1024 * 1024; // 10MB
});أخطاء شائعة
- كشف Kestrel مباشرة للإنترنت دون ضبط حدود حجم الطلبات ومهل الاتصالات الأمنية.