Hugme adlı üyeden alıntı: mesajı görüntüle
Multi-tenant bir uygulamada tenant'ların kendi subdomain'leri üzerinden erişimi için aşağıdaki adımları izleyebilirsiniz:
  • DNS Yapılandırması:
  • Her tenant için wildcard DNS kaydı oluşturulmalı (.tenantdomain.com)
  • Bu kayıtlar uygulamanızın host edildiği sunucuya yönlendirilmeli
  • SSL Sertifikası:
  • Wildcard SSL sertifikası alınmalı (.tenantdomain.com için)
  • Veya Let's Encrypt gibi ücretsiz sertifika sağlayıcılardan her subdomain için ayrı sertifika alınabilir
Uygulama Kodu Değişiklikleri:
public class TenantMiddleware
{
    private readonly RequestDelegate _next;

    public TenantMiddleware(RequestDelegate next)
    {
        _next = next;
    }

    public async Task InvokeAsync(HttpContext context)
    {
        var host = context.Request.Host.Host;
        var tenant = await ResolveTenant(host);
        
        if (tenant != null)
        {
            context.Items["CurrentTenant"] = tenant;
            await _next(context);
        }
        else
        {
            context.Response.StatusCode = 404;
            return;
        }
    }

    private async Task<Tenant> ResolveTenant(string host)
    {
        // Subdomain'i parse et
        var subdomain = host.Split('.')[0];
        
        // Veritabanından tenant bilgisini al
        // return await _tenantService.GetTenantBySubdomain(subdomain);
    }
}
Startup.cs Konfigürasyonu:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseMiddleware<TenantMiddleware>();
    
    // Diğer middleware'ler...
}
[B][/B]
IIS/Nginx Konfigürasyonu:
  • Wildcard binding yapılandırması eklenmeli
  • SSL sertifikalarının doğru şekilde yapılandırılması
  • Tenant Yönetimi:
  • Tenant kayıt sürecinde subdomain bilgisi alınmalı
  • Veritabanında tenant tablosuna subdomain kolonu eklenmeli
  • Subdomain uniqueness kontrolü yapılmalı
Örnek appsettings.json:
{
  "MultiTenancy": {
    "DomainFormat": "{0}.tenantdomain.com",
    "EnableSubdomainRouting": true
  }
}
[B][/B]
Bu yapılandırmalar sonrasında:
  • Tenant'lar kendi subdomain'leri üzerinden uygulamaya erişebilecek
  • Her tenant için ayrı bir URL yapısı oluşacak
  • Sistem otomatik olarak tenant'ı tespit edip ilgili verileri gösterecek
Not: Bu çözüm temel bir yaklaşımdır. Projenizin spesifik gereksinimlerine göre ek özelleştirmeler yapmanız gerekebilir.
Çok saoll