Web grubunda ASP.NET Core barındırma

Tarafından Chris Ross

Web grubu, bir uygulamanın birden çok örneğini barındıran iki veya daha fazla web sunucusu (veya düğümü) grubudur. Kullanıcılardan gelen istekler bir web grubuna ulaştığında, yük dengeleyici istekleri web grubu düğümlerine dağıtır. Web grupları iyileştirir:

  • Güvenilirlik/kullanılabilirlik: Bir veya daha fazla düğüm başarısız olduğunda yük dengeleyici, istekleri işlemeye devam etmek için istekleri diğer işlevli düğümlere yönlendirebilir.
  • Kapasite/performans: Birden çok düğüm tek bir sunucudan daha fazla istek işleyebilir. Yük dengeleyici, istekleri düğümlere dağıtarak iş yükünü dengeler.
  • Ölçeklenebilirlik: Daha fazla veya daha az kapasite gerektiğinde, etkin düğüm sayısı iş yüküyle eşleşecek şekilde artırılabilir veya azaltılabilir. Azure Uygulaması Hizmeti gibi web grubu platformu teknolojileri, sistem yöneticisinin isteği üzerine veya insan müdahalesi olmadan otomatik olarak düğüm ekleyebilir veya kaldırabilir.
  • Bakım: Bir web grubunun düğümleri, bir dizi paylaşılan hizmet kullanabilir ve bu da sistem yönetimini kolaylaştırır. Örneğin, bir web grubunun düğümleri tek bir veritabanı sunucusuna ve resimler ve indirilebilir dosyalar gibi statik kaynaklar için ortak bir ağ konumuna güvenebilir.

Bu konuda, paylaşılan kaynakları kullanan bir web grubunda barındırılan ASP.NET temel uygulamalar için yapılandırma ve bağımlılıklar açıklanmaktadır.

Genel yapılandırma

ASP.NET Core'u barındırma ve dağıtma
Barındırma ortamlarını ayarlamayı ve ASP.NET Core uygulamaları dağıtmayı öğrenin. Uygulama başlatma ve yeniden başlatma işlemlerini otomatikleştirmek için web grubunun her düğümünde bir işlem yöneticisi yapılandırın. Her düğüm için ASP.NET Core çalışma zamanı gerekir. Daha fazla bilgi için belgelerin Konak ve dağıtım alanındaki konulara bakın.

ASP.NET Core'u ara sunucular ve yük dengeleyicilerle çalışacak şekilde yapılandırma
Ara sunucuların ve yük dengeleyicilerin arkasında barındırılan ve genellikle önemli istek bilgilerini gizleyen uygulamalar için yapılandırma hakkında bilgi edinin.

ASP.NET Core uygulamalarını Azure App Service’e dağıtma
Azure App Service, ASP.NET Core dahil olmak üzere web uygulamalarını barındırmaya yönelik bir Microsoft bulut bilişim platformu hizmetidir. App Service otomatik ölçeklendirme, yük dengeleme, düzeltme eki uygulama ve sürekli dağıtım sağlayan tam olarak yönetilen bir platformdur.

Uygulama verileri

Bir uygulama birden çok örneğe ölçeklendirildiğinde, düğümler arasında paylaşım gerektiren bir uygulama durumu olabilir. Durum geçiciyse, bir IDistributedCachepaylaşmayı göz önünde bulundurun. Paylaşılan durum kalıcılık gerektiriyorsa, paylaşılan durumu bir veritabanında depolamayı göz önünde bulundurun.

Gerekli yapılandırma

Veri Koruması ve Önbelleğe Alma, bir web grubuna dağıtılan uygulamalar için yapılandırma gerektirir.

Veri Koruma

ASP.NET Core Data Protection sistemi, uygulamalar tarafından verileri korumak için kullanılır. Veri Koruması, bir anahtar kademesinde depolanan bir dizi şifreleme anahtarına dayanır. Data Protection sistemi başlatıldığında, anahtar halkasını yerel olarak depolayan varsayılan ayarları uygular. Varsayılan yapılandırma altında, web grubunun her düğümünde benzersiz bir anahtar halkası depolanır. Sonuç olarak, her web grubu düğümü başka bir düğümdeki bir uygulama tarafından şifrelenen verilerin şifresini çözemez. Varsayılan yapılandırma genellikle uygulamaları bir web grubunda barındırmak için uygun değildir. Paylaşılan anahtar kademesi uygulamanın bir alternatifi, kullanıcı isteklerini her zaman aynı düğüme yönlendirmektir. Web grubu dağıtımları için Data Protection sistem yapılandırması hakkında daha fazla bilgi için bkz . ASP.NET Çekirdek Veri Korumasını Yapılandırma.

Önbelleğe Alma

Bir web grubu ortamında, önbelleğe alma mekanizmasının önbelleğe alınmış öğeleri web grubu düğümleri arasında paylaşması gerekir. Önbelleğe Alma ortak bir Redis önbelleğine, paylaşılan bir SQL Server veritabanına veya web grubu genelinde önbelleğe alınmış öğeleri paylaşan özel bir önbelleğe alma uygulamasına güvenmesi gerekir. Daha fazla bilgi için bkz . ASP.NET Core'da dağıtılmış önbelleğe alma.

Bağımlı bileşenler

Aşağıdaki senaryolar ek yapılandırma gerektirmez, ancak web grupları için yapılandırma gerektiren teknolojilere bağlıdır.

Senaryo Bağlı ...
Kimlik Doğrulaması Veri Koruması (bkz . ASP.NET Çekirdek Veri Korumasını Yapılandırma).

Daha fazla bilgi için bkz. ASP.NET CoreIdentityolmadan kimlik doğrulamasını kullanma cookie ve kimlik doğrulamalarını cookieASP.NET uygulamalar arasında paylaşma.
Identity Kimlik doğrulaması ve veritabanı yapılandırması.

Daha fazla bilgi için bkz. ASP.NET Core'a Identitygiriş.
Oturum Veri Koruması (şifrelenmişlercookie) (bkz. ASP.NET Çekirdek Veri Korumasını Yapılandırma) ve Önbelleğe Alma (bkz. ASP.NET Core'da dağıtılmış önbelleğe alma).

Daha fazla bilgi için bkz . Oturum ve durum yönetimi: Oturum durumu.
TempData Veri Koruması (şifrelenmişler cookie) (bkz . ASP.NET Çekirdek Veri Korumasını Yapılandırma) veya Oturum (bkz . Oturum ve durum yönetimi: Oturum durumu).

Daha fazla bilgi için bkz . Oturum ve durum yönetimi: TempData.
Sahteciliğe karşı koruma Veri Koruması (bkz . ASP.NET Çekirdek Veri Korumasını Yapılandırma).

Daha fazla bilgi için, bkz. ASP.NET Core'da Siteler Arası İstek Sahteciliği (XSRF/CSRF) saldırılarını önleme.

Sorun giderme

Veri Koruması ve önbelleğe alma

Veri Koruması veya önbelleğe alma bir web grubu ortamı için yapılandırılmadığında, istekler işlendiğinde aralıklı hatalar oluşur. Düğümler aynı kaynakları paylaşmadığı ve kullanıcı isteklerinin her zaman aynı düğüme geri yönlendirildiği için bu durum oluşur.

Kimlik doğrulaması kullanarak cookie uygulamada oturum açan bir kullanıcıyı düşünün. Kullanıcı uygulamada bir web grubu düğümünde oturum açar. Bir sonraki isteği oturum açtığı düğüme ulaşırsa, uygulama kimlik doğrulamasının cookie şifresini çözebilir ve uygulamanın kaynağına erişime izin verir. Bir sonraki isteği farklı bir düğüme ulaşırsa, uygulama kullanıcının oturum açtığı düğümden kimlik doğrulamasının cookie şifresini çözemez ve istenen kaynak için yetkilendirme başarısız olur.

Aşağıdaki belirtilerden herhangi biri aralıklı olarak ortaya çıktığında, sorun genellikle bir web grubu ortamı için yanlış Veri Koruması veya önbelleğe alma yapılandırmasına izleniyor:

  • Kimlik doğrulama sonları: Kimlik doğrulaması cookie yanlış yapılandırılmış veya şifresi çözülemiyor. OAuth (Facebook, Microsoft, Twitter) veya OpenId Bağlan oturum açma işlemleri "Bağıntı başarısız oldu" hatasıyla başarısız oluyor.
  • Yetkilendirme sonları: Identity kaybolur.
  • Oturum durumu verileri kaybeder.
  • Önbelleğe alınan öğeler kaybolur.
  • TempData başarısız oluyor.
  • POST'ler başarısız oluyor: Sahteciliği önleme denetimi başarısız oluyor.

Web grubu dağıtımları için Veri Koruma yapılandırması hakkında daha fazla bilgi için bkz . ASP.NET Çekirdek Veri Korumasını Yapılandırma. Web grubu dağıtımları için önbelleğe alma yapılandırması hakkında daha fazla bilgi için bkz . ASP.NET Core'da dağıtılmış önbelleğe alma.

Uygulamalardan veri alma

Web grubu uygulamaları isteklere yanıt ver yapabiliyorsa, terminal satır içi ara yazılımını kullanarak uygulamalardan istek, bağlantı ve ek veriler alın. Daha fazla bilgi ve örnek kod için bkz . Çekirdek projelerde sorun giderme ve hata ayıklama ASP.NET.

Ek kaynaklar