Tenant Oluşturma Süreci

Multi-Tenant Mimari - Kapsamlı Teknik Analiz

Central + Tenant DB Plesk Entegrasyonu SSL Sertifikası v5 - SEO Redirect + Webroot + Rate Limit

SEO Redirect Sorunu (v5 - KRİTİK!) YENİ

Basit Anlatım (Herkes İçin)

Problem Ne?

Domain alias'ları oluşturunca Plesk otomatik olarak HTTP → HTTPS yönlendirmesi yapıyor. Ama HTTPS'te henüz sertifika yok!

Ne Oluyor?

Let's Encrypt HTTP challenge başlatıyor → HTTP 301 HTTPS'e yönleniyor → HTTPS'te sertifika yok → Challenge başarısız → SSL alınamıyor!

Gerçek Örnek: demekki.com

Alias oluşturuldu ama seo-redirect açık kaldı. HTTP challenge 301 ile HTTPS'e gitti ve başarısız oldu.

Çözüm

Alias oluşturduktan HEMEN SONRA seo-redirect false ayarla. SSL aldıktan sonra tekrar true yapabilirsin.

Teknik Detaylar

Sorunlu Durum

1 plesk bin domalias --create demekki.com
2 seo-redirect varsayılan: OFF (ama HTTP redirect var!)
3 certbot → http://demekki.com/.well-known/...
4 301 → https://demekki.com/.well-known/...
5 SSL hatası (sertifika yok)

Doğru Akış

1 plesk bin domalias --create demekki.com
2 plesk bin domalias -u demekki.com -seo-redirect false
3 certbot → HTTP 200 OK
4 SSL alındı!
5 (Opsiyonel) seo-redirect true yap

SEO Redirect Kapatma/Açma

# Alias bilgilerini kontrol et sudo plesk bin domalias --info demekki.com # SEO redirect KAPAT (SSL almadan önce!) sudo plesk bin domalias -u demekki.com -seo-redirect false sudo plesk bin domalias -u demekki.tuufi.com -seo-redirect false # SSL aldıktan sonra tekrar AÇ (opsiyonel) sudo plesk bin domalias -u demekki.com -seo-redirect true

Let's Encrypt Webroot Konumu (v5 - KRİTİK!) YENİ

Basit Anlatım

Problem Ne?

certbot komutunda yanlış webroot dizini kullanılıyor. Challenge dosyaları yanlış yere yazılıyor.

Doğru Dizin

nginx config'te acme-challenge için /var/www/vhosts/default/htdocs tanımlı. Certbot bunu kullanmalı!

nginx Config'teki Tanım

# /etc/nginx/plesk.conf.d/vhosts/tuufi.com.conf içinde: #extension letsencrypt begin location ^~ /.well-known/acme-challenge/ { root /var/www/vhosts/default/htdocs; ... } #extension letsencrypt end

Doğru certbot Komutu

# ❌ YANLIŞ - tuufi.com public dizini sudo certbot certonly --webroot -w /var/www/vhosts/tuufi.com/httpdocs/public -d domain.com # ✅ DOĞRU - Plesk varsayılan htdocs sudo certbot certonly --webroot -w /var/www/vhosts/default/htdocs -d domain.com -d www.domain.com \ --non-interactive --agree-tos --email ssl@tuufi.com

Let's Encrypt Rate Limit (v5) YENİ

Rate Limit Hatası

too many failed authorizations (5) for "www.demekki.com" in the last 1h0m0s retry after 2026-02-16 01:40:39 UTC

Ne Anlama Geliyor?

Son 1 saat içinde 5 başarısız deneme yapıldı. 1 saat beklenmeli.

Nasıl Önlenir?

Önce tüm hazırlıkları yap (SEO redirect kapat, nginx kontrol et), sonra tek seferde SSL al.

Let's Encrypt Limitleri

  • Haftalık 50 sertifika (domain başına)
  • Saatlik 5 başarısız deneme (domain başına)
  • Dakikada 300 yeni sipariş
  • Staging ortamı için limit yok: --staging flag kullan

Plesk domalias Komutu (v5) YENİ

Doğru Komut: domalias

# ❌ YANLIŞ - site_alias komutu YOK! sudo /usr/local/psa/bin/site_alias --create domain.com # HATA! # ✅ DOĞRU - domalias kullan sudo plesk bin domalias --create domain.com -domain tuufi.com -web true -mail false -dns false

Alias Oluşturma

# Ana domain + www subdomain sudo plesk bin domalias --create demekki.com \ -domain tuufi.com \ -web true \ -mail false \ -dns false sudo plesk bin domalias --create demekki.tuufi.com \ -domain tuufi.com \ -web true \ -mail false \ -dns false

Alias Bilgisi

# Alias durumunu kontrol et sudo plesk bin domalias --info demekki.com # Çıktı: Name demekki.com Domain tuufi.com Status enabled Mail On Web On DNS On Seo redirect Off # Bu OFF olmalı!

nginx Symlink Sorunu (v5) YENİ

Hata Mesajı

Refusing to create symlink '/etc/nginx/plesk.conf.d/vhosts/tuufi.com.conf': file with the same name already exists

Neden Oluyor?

Plesk nginx config'i symlink olarak oluşturmak istiyor ama mevcut dosya normal dosya (symlink değil). Manuel düzenleme yapıldığında bu sorun çıkıyor.

Çözüm

Eski dosyayı sil, Plesk'in yeniden oluşturmasına izin ver. Sonra custom ayarları vhost_nginx.conf'a ekle.

Düzeltme Komutları

# 1. Eski dosyayı sil sudo rm /etc/nginx/plesk.conf.d/vhosts/tuufi.com.conf # 2. Plesk'in yeniden oluşturmasını sağla sudo /usr/local/psa/admin/sbin/httpdmng --reconfigure-domain tuufi.com # 3. nginx test ve reload sudo nginx -t && sudo systemctl reload nginx

Yeni Tenant/Domain Ekleme Prosedürü (GÜNCEL v5)

1

Admin Panelden Tenant Oluştur

tuufi.com/admin/tenants → Yeni Tenant ekle

Otomatik: DB, tablolar, seeder, storage, Plesk DB kaydı

2

Domain Ekle

Tenant detayında domain ekle (örn: demekki.com)

Otomatik: www subdomain, domains tablosuna kayıt

3

DNS Ayarla (Harici domain ise)

Domain sağlayıcısında A kaydı: 159.253.45.94

dig +short demekki.com A # 159.253.45.94 dönmeli
4

Plesk Domain Alias Ekle (YENİ v5!)

# Ana domain + subdomain alias oluştur sudo plesk bin domalias --create demekki.com -domain tuufi.com -web true -mail false -dns false sudo plesk bin domalias --create demekki.tuufi.com -domain tuufi.com -web true -mail false -dns false
5

SEO Redirect KAPAT (KRİTİK v5!)

SSL almadan önce MUTLAKA kapat!

sudo plesk bin domalias -u demekki.com -seo-redirect false sudo plesk bin domalias -u demekki.tuufi.com -seo-redirect false # Kontrol et sudo plesk bin domalias --info demekki.com | grep -i redirect
6

nginx Symlink Sorunu Varsa Düzelt (v5)

# Eğer httpdmng hatası alıyorsan: sudo rm /etc/nginx/plesk.conf.d/vhosts/tuufi.com.conf sudo /usr/local/psa/admin/sbin/httpdmng --reconfigure-domain tuufi.com sudo nginx -t && sudo systemctl reload nginx
7

SSL Sertifikası Al

# DOĞRU webroot ile certbot sudo certbot certonly --webroot \ -w /var/www/vhosts/default/htdocs \ -d demekki.com -d www.demekki.com \ -d demekki.tuufi.com -d www.demekki.tuufi.com \ --non-interactive --agree-tos --email ssl@tuufi.com # VEYA mevcut sertifikaya ekle sudo /var/www/vhosts/tuufi.com/httpdocs/scripts/ssl/add-domain-to-ssl.sh demekki.com
8

Test Et

# HTTP/HTTPS erişim testi curl -s -I https://demekki.com | head -5 curl -s -I https://demekki.tuufi.com | head -5 # SSL sertifika kontrolü echo | openssl s_client -servername demekki.com -connect demekki.com:443 2>/dev/null | \ openssl x509 -noout -text | grep DNS:

Sık Yapılan Hatalar (v5 Güncel)

SEO redirect kapatmamak

Alias oluşturduktan sonra seo-redirect false yapmadan SSL almaya çalışmak.

Çözüm: plesk bin domalias -u domain -seo-redirect false

Yanlış webroot kullanmak

certbot'a tuufi.com/public yerine default/htdocs vermek.

Çözüm: -w /var/www/vhosts/default/htdocs

site_alias komutunu kullanmak

Plesk'te site_alias komutu YOK!

Çözüm: plesk bin domalias kullan

Rate limit'e takılmak

Hazırlık yapmadan defalarca SSL denemek.

Çözüm: Önce tüm ayarları yap, sonra tek seferde SSL al

nginx config'e domain eklememek

nginx config'de domain yoksa SSL script başarısız.

Çözüm: domalias komutu otomatik ekler veya manuel sed ile ekle

DNS beklemeden SSL almak

DNS propagation tamamlanmadan SSL almaya çalışmak.

Çözüm: dig domain.com ile önce kontrol et

Hızlı Referans Komutları (v5)

Plesk Alias

Alias oluştur:

sudo plesk bin domalias --create domain.com -domain tuufi.com -web true -mail false

SEO redirect kapat:

sudo plesk bin domalias -u domain.com -seo-redirect false

Alias bilgisi:

sudo plesk bin domalias --info domain.com

SSL İşlemleri

certbot (doğru webroot):

sudo certbot certonly --webroot -w /var/www/vhosts/default/htdocs -d domain.com

Script ile ekle:

sudo scripts/ssl/add-domain-to-ssl.sh domain.com

nginx İşlemleri

Symlink sorunu düzelt:

sudo rm /etc/nginx/plesk.conf.d/vhosts/tuufi.com.conf && sudo httpdmng --reconfigure-domain tuufi.com

nginx test & reload:

sudo nginx -t && sudo systemctl reload nginx

Genel Akış Şeması (v5 Güncel)

1. Tenant::create() 2. DB + Migration 3. Domain Kayıt 4. DNS Ayarla
5. Plesk domalias 6. seo-redirect OFF 7. nginx symlink fix
8. certbot (doğru webroot) 9. HTTPS Test

Özet Checklist (v5)

1. Hazırlık

  • DNS ayarla (A: 159.253.45.94)
  • dig domain.com
  • Tenant oluştur

2. Plesk Alias

  • domalias --create
  • seo-redirect false
  • --info ile kontrol

3. nginx

  • Symlink sorunu?
  • rm + httpdmng
  • nginx -t && reload

4. SSL

  • certbot (default/htdocs)
  • https:// test
  • Admin giriş test