Kestrel হলো ASP.NET Core-র জন্য একটি ক্রস-প্ল্যাটফর্ম ওয়েব সার্ভার। এটি .NET Core সাপোর্ট করা সকল প্ল্যাটফর্ম এবং ভার্সনে সাপোর্টেড।
এটি ASP.NET Core-তে ডিফল্টরূপে ইন্টার্নাল সার্ভার হিসেবে ইনক্লুডেড থাকে। Kestrel নিজে নিজে এজ সার্ভার (Edge Server) হিসেবে ব্যবহার করা যায়—অর্থাৎ ইন্টারনেট-ফেসিং ওয়েব সার্ভার যা ক্লায়েন্ট থেকে আসা HTTP রিকোয়েস্ট সরাসরি প্রসেস করতে পারে। Kestrel-এ অ্যাপ হোস্ট করার প্রসেস হলো dotnet.exe।
Kestrel InProcess হোস্টিং মডেলের সাথে ব্যবহার করা হয় না।
Out-of-Process Hosting Model-এ Kestrel দুটি ভাবে ব্যবহার করা যায়:
- Kestrel একক ইন্টারনেট-ফেসিং ওয়েব সার্ভার হিসেবে।
- Kestrel রিভার্স প্রক্সি সার্ভারের (IIS, Nginx, Apache) সাথে কম্বিনেশন হিসেবে।
যখন .NET Core CLI দিয়ে ASP.NET Core অ্যাপ্লিকেশন রান করা হয়, Kestrel একমাত্র ওয়েব সার্ভার যা ইনকামিং HTTP রিকোয়েস্ট হ্যান্ডেল ও প্রসেস করে।
CLI ব্যবহার উদাহরণ
- নতুন প্রজেক্ট তৈরি:
dotnet new webapi - ডিপেন্ডেন্সি রিস্টোর:
dotnet restore - বিল্ড:
dotnet build - রান:
dotnet run
dotnet run এক্সিকিউট করার পর URL দেখাবে (যেমন https://localhost:5000)। ব্রাউজারে নেভিগেট করলে প্রসেস নাম dotnet.exe দেখাবে।
প্রোডাকশন সুপারিশ: ইন্টারনেট-ফেসিং সিনেরিওতে Kestrel-এর সামনে রিভার্স প্রক্সি (IIS, Nginx, YARP) ব্যবহার করুন—সিকিউরিটি, লোড ব্যালেন্সিং, স্ট্যাটিক ফাইল সার্ভিং, SSL টার্মিনেশন জন্য।