Herkese Merhabalar,
Geliştirdiğimiz proje bir iş takip yazılımıdır. Multi tenant yapıda, .net core ile geliştiriyoruz. Tenantların, uygulamaya bizim domain üzerinden değil de kendi subdomainleri üzerinden girmesini istiyorum yani app.livosoft.com değil de , giris.tenantdomain.com olmasını istiyorum.
Bu şekilde olması için nasıl bir yol izleyebiliriz.
Saas Peojesinde Multi Tenant Yapı İçin Url Yapısı
6
●118
- 23-03-2025, 20:41:33Bununla alakalı nasıl bir makale okumalıyım peki ?Hugme adlı üyeden alıntı: mesajı görüntüle
- 23-03-2025, 20:44:09yapılacak işlemi bir yapay zekaya anlatacağım , bana nasıl yapacağımı anlat adım adım diyeceğim çıkan sonucu size yollayacağım ama mutlaka yedek almadan işlem yapmayınbbedir34 adlı üyeden alıntı: mesajı görüntüle
- 23-03-2025, 20:48:41Multi-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
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ı
{ "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