Asp.Net Core Hosting Modeli Web Uygulamalarında Nasıl Kullanılır?

Asp.net çekirdeği, barındırma modelinde önemli bir geliştirmeye sahiptir. Önceki sürümlerde Windows, Apache veya NGINX üzerinde IIS gibi proxy web sunucuları aracılığıyla Asp.net Core web uygulamalarını barındırması bekleniyordu. Ancak, yeni Asp.net core 2.2, harici sunucu gereksinimleri olmadan Asp.net uygulamasının IIS içinde Windows'da doğrudan barındırılmasına izin verir. Böylece, basit İşlem İçi barındırma mekanizması kullanarak verim artırılır.

ASP.NET Core'da Barındırma Modelleri

ASP.NET, Microsoft'tan web sunucusu tarafında dinamik sayfalar oluşturmanızı sağlayan bir teknolojidir.

ASP.NET'i barındırma, Windows tabanlı yazılımın yanı sıra işletim sisteminin kendisi ile tamamen entegre edilmiştir. Bu teknoloji, kullanımı kolay olduğu kadar güvenli ve güvenilir olarak kabul edilmektedir. Esas olarak uygulama içi ürünlerin geliştirilmesi için kullanılır.

ASP.NET Core'daki barındırma modelleri iki türdür; yani İşlem İçi Hosting ve İşlem Dışı Hosting. ASP.Net Core 2.2'den önce, işlem dışı barındırma olan tek bir barındırma modeli vardı, ancak performans nedeniyle Asp.net çekirdek 2.2 sürümlerinde İşlem İçi Barındırma Modeli tanıtıldı.

Asp.net Core'da İşlem İçi Hosting Modelinin Tanıtımı

ASP.NET Core'un önceki sürümlerinde, uygulamanın IIS üzerinden proxy gönderen İşlem Dışı bir barındırma modeli kullanarak IIS'de barındırılması gerekiyordu. IIS veya IIS Express'i tıklayan istekler, Kestrel Web Sunucusu içinde çalışan ASP.NET Core web uygulamasına iletilir. Ancak, yeni İşlem içi barındırma ile IIS, Nginx veya Linux gibi barındırma için yalnızca bir sunucu kullanılır. Bu, istekleri Kestrel'e iletmek yerine, doğrudan IIS Uygulama Havuzu içinde, isteği sunacak yeni bir Web Sunucusu uygulamasının (IISHttpServer) barındırıldığı anlamına gelir. ASP.NET Core 3.1 ile, varolan bir şablonu kullanarak yeni bir uygulama geliştirdiğinizde işlem içi barındırma modeli varsayılan model olarak kullanılır.

Görünüşe göre, bu barındırma modeli, İşlem Dışı barındırma modeliyle karşılaştırıldığında çok yüksek bir verim ve performans geliştirmesine sahiptir.

İşlem Dışı Barındırma Modeli

İşlem dışı barındırma modellerinde, Kestrel sunucusunu doğrudan kullanıcı isteği karşı karşıya sunucu olarak kullanabilir veya uygulamayı proxy sunucusu olarak çalışacak ve dahili Kestrel sunucusuna istek gönderen IIS'ye dağıtabilirsiniz. Bu tür bir barındırma modelinde, barındırma için iki seçeneğiniz vardır; yani Kestrel ve Proxy Server'ı kullanma:

1. Kerkenez Kullanımı

Burada, Kestrel'in kendisi, kullanıcının isteklerini doğrudan sunucu yapan bir edge sunucusu gibi davranır; bu, uygulamanın yalnızca Kestrel sunucusunu kullanabileceği anlamına gelir.

2. Proxy Sunucusu Kullanma

Kestrel sunucusunun sınırlamaları nedeniyle, bunu tüm uygulamalarda kullanamazsınız. Bu gibi durumlarda, IIS, Apache veya NGINX gibi güçlü sunucular kullanılmalıdır. Bu durumda, bu sunucu, her isteği uygulamanın çalıştığı dahili Kestrel sunucusuna yönlendirecek bir yedek proxy sunucusu gibi davranır. Burada, IIS ve Kestrel gibi iki sunucu çalışıyor.

Bu barındırma modeli, daha önce .NET Core 2.2 sürümü uygulanan tüm uygulamalar için varsayılan bir modeldir. Performans yavaşlığı gibi bu tür kullanımdaki sınırlamalardan biri.

Son düşünceler:

Gerçeklere göre, ASP.Net web geliştirme şirketlerinin çoğu kesinlikle In-Process hosting modelini kullanmak istiyor. Daha az kaynak tükettiği ve iyi performans sağladığı için. Kestrel için ek bir işleme ihtiyaç duymadığından ve IIS ile Kestrel arasında fazladan iletişimi de önler. Ancak, aynı web uygulamasının Windows ve Linux'ta barındırılması gibi İşlem Dışı hosting'i seçmek isteyebilecek durumlar vardır. Uygulamayı diğer platformlarda barındırmaktan bahsederken, Kestrel tüm platformlarda HTTP isteklerini işlemek için kullanılan birincil mekanizmadır.

Ancak, Kestrel için çok özel bir gereksiniminiz yoksa In-Process'i IIS üzerinde çalıştırmak en iyi yoldur.

Ana resim kredisi: Fotoğraf Unsplash üzerinde Farzad Nazifi




Yorumlar (0)

yorum Yap