Wildcard - hər subdomeni tutmaq
Wildcard subdomen *.mysite.az - istənilən subdomen istəyini tutur. random.mysite.az, 123.mysite.az, hətta çəkilməyən-ad.mysite.az hamısı eyni serverə yönləndirilir.
Niyə lazımdır?
1. SaaS multi-tenant
Hər müştəri öz subdomeni alır:
aslan.myapp.az → Aslanın paneli fatima.myapp.az → Fatimanın paneli ferid.myapp.az → Feridin paneli
Yeni müştəri qoşulan kimi heç bir DNS dəyişiklik tələb olunmur.
2. Dinamik blog/forum
Hər istifadəçi öz blog-u: username.blog.az
3. A/B test mühiti
Hər feature branch öz subdomeni: feature-x.dev.mysite.az
DNS-də qurulması
* A 94.20.59.155
Cloudflare-də: Type A, Name *, IPv4 94.20.59.155.
Nginx konfiq
server {
listen 80;
server_name *.mysite.az;
root /var/www/saas;
location / {
try_files $uri $uri/ /index.php?subdomain=$host&$args;
}
}PHP-də subdomen-i tut:
$host = $_SERVER['HTTP_HOST'];
$parts = explode('.', $host);
$subdomain = $parts[0];
// İndi $subdomain="aslan", DB-dən yüklə
$tenant = Tenant::findBySubdomain($subdomain);Wildcard SSL
Hər subdomen üçün ayrı sertifikat almaq mümkün deyil (yüz minlərlə müştəri var). Wildcard SSL bütün *.mysite.az-i bir sertifikatla qoruyur.
sudo certbot certonly --manual --preferred-challenges=dns -d *.mysite.az -d mysite.az
DNS provayderində TXT qeyd əlavə etməli olacaqsan (DNS-01 challenge).
Avtomatik DNS API
Cloudflare API ilə avtomatlaşdırılmış:
sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare.ini -d *.mysite.az
Diqqət!
Wildcard MX qeydi olmaz. Hər email subdomen üçün ayrı MX lazımdır.