Doconut'u Dağıtık Sunucu Dağıtımları İçin Nasıl Yapılandırılır
← Back to Blog••3 min read

Doconut'u Dağıtık Sunucu Dağıtımları İçin Nasıl Yapılandırılır

Doconut'u Dağıtık Sunucu Yapılandırmasında Kullanma

PDF'ler, Office dosyaları, CAD çizimleri veya görüntüleri bir ASP.NET Çekirdek düğüm kümesinden sunmanız gerektiğinde, Doconut'un dağıtık modu her düğümün aynı sayfa artefaktlarını paylaşılan bir konumdan okumasını sağlar. Sonuç, yapışkan oturumlar olmadan bir yük dengeleyicinin arkasında çalışan, yatay olarak ölçeklenebilir, güvenli bir görüntüleyicidir.

Dağıtık Modun Önemi

  • Ölçeklenebilirlik – Her düğüm sayfaları bir UNC ya da bulut paylaşımına yayınlayabilir; diğer herhangi bir düğüm bunları anında sunabilir.
  • Güvenlik – Artefaktlar paylaşılan klasörde şifreli olarak depolanır; görüntüleyici her isteği ASP.NET oturum belirtecine karşı doğrular.
  • Office bağımlılığı yok – Converter eklentisi sunucu tarafında çalışır, Word, Excel, PowerPoint, CAD ve görüntüleri Microsoft Office kurmadan PDF ya da görüntülere dönüştürür.

Bu özellikler, kurumsal DMS, CRM veya e‑öğrenme portalının belge işleme süreçlerini .NET arka ucunda tutmasını ve onlarca konteynerle ölçeklenmesini sağlar.

Dağıtık Mod İçin Paylaşımlı Depolama

Dağıtık modda Doconut, sayfa artefaktlarının (PDF sayfaları, görüntü döşemeleri vb.) her çiftlik düğümü tarafından erişilebilen bir depolama konumuna yazılmasını bekler – bir ağ paylaşımı, Azure Blob konteyneri, S3 kovası veya Progressive Cloud Publishing özelliği tarafından desteklenen başka bir paylaşımlı depolama. Görüntüleyici, belgeye özgü güvenlik belirteciyle eşleşen artefakt klasörünü otomatik olarak arar, bu yüzden seçilen depolamaya tüm düğümlerin aynı okuma‑yazma erişimine sahip olduğundan emin olmanın ötesinde ek bir kod gerekmez.

Tip: Aynı UNC yolunu (ör. \\fileserver\doconut) veya bulut URL'sini her örnek yapılandırmasında kullanın ve klasör izinlerini tutarlı tutun. UsePerTokenSubfolders davranışı varsayılan olarak etkindir ve her belgenin sayfalarını izole eder.

Doconut ve Oturum Ara Katmanını Kaydetme

Doconut, belge başına güvenlik için ASP.NET Çekirdek oturum durumuna dayanır. Dağıtık bir önbellek yalnızca minimal‑API projesi kullandığınızda gerekir; MVC veya Razor Sayfaları zaten birini ekler.

builder.Services.AddDoconut(options =>
{
    options.LicensePath = "Doconut.Viewer.lic";
});

builder.Services.AddDistributedMemoryCache(); // session bir önbelleğe ihtiyaç duyar
builder.Services.AddSession();                 // Doconut session'a karşı doğrulama yapar

app.UseSession();               // UseDoconut()'dan önce çalıştırılmalıdır
app.UseDoconutResources();      // Statik görüntüleyici varlıklarını kaydeder
app.Map("/doconut", branch => branch.UseDoconut());

Özel Yollar (isteğe bağlı)

Başka bir yol /doconut ile çakışıyorsa, yolları bir kez değiştirin ve istemci BasePath ile senkronize tutun:

builder.Services.AddDoconut(options =>
{
    options.MiddlewarePath = "/docs-engine";
    options.ResourcesPath  = "/docs-assets";
});
app.UseDoconutResources();
app.Map("/docs-engine", branch => branch.UseDoconut());

MiddlewarePath veya ResourcesPath önüne bir eğik çizgi eklemeyin; görüntüleyici bunu otomatik olarak ekler.

Hepsini Bir Araya Getirme: Minimal‑API Örneği

Aşağıda, paylaşımlı‑depolama gereksinimini, oturum yönetimini ve Doconut kaydını birleştiren kompakt, üretim‑hazır bir kurulum örneği bulunmaktadır.

var builder = WebApplication.CreateBuilder(args);

// 1️⃣ Core Doconut kaydı
builder.Services.AddDoconut(options =>
{
    options.LicensePath = Path.Combine(
        AppContext.BaseDirectory, "wwwroot", "Doconut.Viewer.lic");
    options.MiddlewarePath = "/doconut";
    options.ResourcesPath  = "/doconut-res";
});

// 2️⃣ Session and cache (güvenlik için gerekli)
builder.Services.AddDistributedMemoryCache();
builder.Services.AddSession();

var app = builder.Build();

app.UseRouting();
app.UseSession();
app.UseDoconutResources();                     // statik görüntüleyici paketi
app.Map("/doconut", branch => branch.UseDoconut());

app.Run();

Bu ikili dosyayı, bir yük dengeleyicinin arkasında çalışan herhangi sayıda Docker konteynerine veya Windows hizmetine dağıtın. Her örnek, sayfa artefaktları için yapılandırdığınız paylaşımlı depolama konumuna ulaşabildiği sürece, görüntüleyici herhangi bir düğümden sayfaları çeker ve yüklemeler/dönüşümler düğüm geçişlerinden etkilenmez.

Yük Dengeleyicinin Arkasında Dağıtma

  1. Aynı temel URL'yi ortaya çıkarın (ör. ` her düğümde.
  2. Yapışkan oturumları devre dışı bırakın – Doconut'un dağıtık modu oturum yapışkanlığı ihtiyacını ortadan kaldırır.
  3. Sağlık izlemeyi sağlayın; uygulamanızın temel bir uç noktasını (ör. /health) kontrol eder, böylece dengeleyici trafiği yalnızca canlı düğümlere yönlendirir.
  4. Paylaşımlı klasörü büyüme için izleyin; varsayılan 30 dakika TTL depolamayı sınırlı tutar, ancak uyumluluk ihtiyaçlarınıza göre ayarlayabilirsiniz.

Bu adımlarla, belge‑ağır .NET uygulamanız binlerce eşzamanlı görüntüleyiciye hizmet verebilir, her sayfayı dinlenirken şifreli tutar ve her sunucuda Office kurmanın getirdiği yükten kaçınır.

Denemeye hazır mısınız? Doconut'un ücretsiz denemesini alın, birkaç konteyner başlatın, onları paylaşımlı bir UNC yoluna yönlendirin ve görüntüleyicinin tek bir yapışkan‑oturum çerezi olmadan ölçeklenmesini izleyin.

#dotnet#distributed#web‑farm#document‑viewer#scaling#dağıtık#web‑çiftliği#belge‑görüntüleyici#ölçekleme