Kestrel হল একটি ক্রস-প্ল্যাটফর্ম ও লাইটওয়েট ওয়েব সার্ভার যা ASP.Net Core এর জন্য ডিফল্ট সার্ভার হিসেবে ব্যবহৃত হয়। এটি মূলত HTTP সার্ভার হিসেবে কাজ করে এবং দ্রুত ও সুরক্ষিত ডাটা ট্রান্সমিশন নিশ্চিত করে। Kestrel একটি উন্নত, উচ্চ কার্যক্ষম ওয়েব সার্ভার যা .NET Core অ্যাপ্লিকেশন চালানোর জন্য ডিজাইন করা হয়েছে এবং এটি Windows, Linux, এবং macOS এর উপর কাজ করতে পারে।
Kestrel হলো একটি হালকা, দ্রুত এবং ক্রস-প্ল্যাটফর্ম ওয়েব সার্ভার যা .NET Core অ্যাপ্লিকেশনগুলির জন্য ব্যবহৃত হয়। এটি IIS (Internet Information Services) বা অন্যান্য সার্ভারের সাথে কাজ করতে পারে, তবে Kestrel নিজে এককভাবে একটি পূর্ণাঙ্গ ওয়েব সার্ভার হিসেবে ব্যবহৃত হতে পারে।
ASP.Net Core অ্যাপ্লিকেশন তৈরির সময়, Kestrel ডিফল্ট সার্ভার হিসেবে ব্যবহৃত হয়। তবে আপনি যদি Kestrel কে কনফিগার বা কাস্টমাইজ করতে চান, তাহলে কিছু কনফিগারেশন পদ্ধতি রয়েছে।
এটি করা খুবই সহজ। শুধু Program.cs
বা Startup.cs
ফাইলে Kestrel কনফিগারেশন করা হয়।
Program.cs উদাহরণ:
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseKestrel() // Kestrel সার্ভার ব্যবহার
.UseStartup<Startup>();
});
}
এখানে, UseKestrel()
পদ্ধতি অ্যাপ্লিকেশনকে Kestrel সার্ভার ব্যবহার করতে নির্দেশ দেয়।
Kestrel সার্ভার কিছু কাস্টম কনফিগারেশন সমর্থন করে, যেমন পোর্ট এবং HTTPS কনফিগারেশন। এর জন্য, ConfigureKestrel
পদ্ধতিটি ব্যবহার করা হয়।
Program.cs এ Kestrel কনফিগারেশন:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseKestrel(options =>
{
// HTTP পোর্ট কনফিগারেশন
options.ListenAnyIP(5000); // HTTP পোর্ট
options.ListenAnyIP(5001, listenOptions => // HTTPS পোর্ট
{
listenOptions.UseHttps();
});
})
.UseStartup<Startup>();
});
এখানে:
ListenAnyIP(5000)
HTTP পোর্টের জন্য Kestrel কে কনফিগার করে।ListenAnyIP(5001)
HTTPS পোর্টের জন্য কনফিগার করা হয়।Kestrel এককভাবে ওয়েব সার্ভার হিসেবে ব্যবহার করা হলেও, নিরাপত্তা এবং লোড ভারসাম্যের জন্য এটি সাধারণত একটি reverse proxy server এর সাথে কাজ করে, যেমন IIS বা Nginx।
এই ক্ষেত্রে, Kestrel শুধুমাত্র অ্যাপ্লিকেশনটির HTTP/HTTPS রিকোয়েস্ট প্রক্রিয়া করে এবং প্রোক্সি সার্ভার নিরাপত্তা, সেশন এবং অন্যান্য ফিচার ম্যানেজ করে।
Program.cs
এ কনফিগারেশন:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseKestrel()
.UseIISIntegration() // IIS ইন্টিগ্রেশন
.UseStartup<Startup>();
});
Kestrel সার্ভার HTTPS প্রোটোকল সমর্থন করে, তাই আপনি এটি সুরক্ষিত যোগাযোগের জন্য কনফিগার করতে পারেন। সাধারণত, এটি সার্টিফিকেটের মাধ্যমে HTTPS কনফিগার করা হয়।
HTTPS কনফিগারেশন:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseKestrel(options =>
{
options.ListenAnyIP(5001, listenOptions =>
{
listenOptions.UseHttps("path_to_cert.pfx", "password"); // সার্টিফিকেট ব্যবহার
});
})
.UseStartup<Startup>();
});
এখানে, UseHttps
মেথডের মাধ্যমে সার্টিফিকেট ব্যবহারের কনফিগারেশন করা হয়েছে।
Kestrel হল একটি অত্যন্ত কার্যকরী, দ্রুত এবং নিরাপদ ওয়েব সার্ভার যা ASP.Net Core অ্যাপ্লিকেশনে ব্যবহৃত হয়ে থাকে এবং তা সহজেই কনফিগার, কাস্টমাইজ এবং এক্সপ্যান্সন করা যায়।
Read more