Zamonaviy bulut platformalari — Vercel, Railway, AWS va boshqalar — maxsus domen ulashda ko'pincha bitta ko'rsatma beradi: «Domeningiz uchun quyidagi manzilga CNAME yozuvi yarating». Subdomen uchun bu hech qanday muammo tug'dirmaydi, www yoki app nomiga CNAME bemalol qo'shiladi. Lekin xuddi shu yozuvni asosiy domenning o'ziga, ya'ni misol-startap.uz ga qo'shmoqchi bo'lganingizda DNS paneli xato beradi yoki yozuvni saqlaydi-yu, keyin pochta ishlashdan to'xtaydi. Bu panelning kamchiligi emas, balki DNS standartining talabi. Quyida sababni va har bir platforma uchun amaliy yechimlarni ko'rib chiqamiz.
Nega asosiy domenga CNAME qo'yib bo'lmaydi
CNAME yozuvi «bu nom aslida boshqa nomning taxallusi» degan ma'noni anglatadi. Standart bo'yicha CNAME bor nomda boshqa hech qanday yozuv bo'lishi mumkin emas, chunki rezolver bu nom haqidagi barcha savollarni nishon nomga yo'naltiradi. Asosiy domenda esa majburiy ravishda SOA va NS yozuvlari turadi, ko'pincha MX va TXT ham bo'ladi. Shuning uchun asosiy domenga CNAME qo'yish ushbu yozuvlar bilan to'qnashadi.
Ba'zi panellar bunday yozuvni rad etadi, ba'zilari esa qabul qiladi, lekin natija oldindan aytib bo'lmaydigan bo'ladi: rezolverlarning bir qismi MX'ni topa olmaydi va pochta yo'qola boshlaydi. Shuning uchun quyidagi ko'rinishdagi yozuvdan qochish kerak.
; noto'g'ri: asosiy domendagi CNAME SOA, NS va MX bilan to'qnashadi
@ IN CNAME cname.platforma-misol.com.
@ IN MX 10 mail.misol-startap.uz.
; to'g'ri: subdomen uchun CNAME
www IN CNAME cname.platforma-misol.com.
1-yechim: platforma bergan A yozuvi
Eng oddiy yo'l — platforma asosiy domen uchun IP manzil berishi. Vercel shunday qiladi: loyiha sozlamalaridagi Domains bo'limida asosiy domen uchun A yozuvi va uning IP manzili ko'rsatiladi, www uchun esa CNAME tavsiya qilinadi. Qiymatlarni maqoladan emas, aynan o'z loyihangiz panelidan oling, chunki platformalar tavsiya etilgan manzillarni vaqti-vaqti bilan yangilab turadi. A yozuvi oddiy yozuv bo'lgani uchun u MX va TXT bilan bemalol birga yashaydi va istalgan DNS panelida ishlaydi.
@ IN A <Vercel panelida ko'rsatilgan IP>
www IN CNAME <Vercel panelida ko'rsatilgan nom>.
@ IN MX 10 mail.misol-startap.uz.
2-yechim: CNAME flattening, ALIAS yoki ANAME
Railway va AWS'ning ko'p xizmatlari (yuk balanslagich, CloudFront, Elastic Beanstalk) doimiy IP manzil bermaydi, faqat xost nomini beradi, chunki ularning IP manzillari o'zgarib turadi. Bunday holatda asosiy domen uchun «CNAME flattening» kerak bo'ladi. Bu usulda DNS provayderi nishon nomning joriy IP manzillarini o'zi aniqlab, ularni oddiy A yozuvi sifatida qaytaradi. Tashqaridan qaraganda asosiy domenda faqat A yozuvlar turadi, shuning uchun standart buzilmaydi va pochta yozuvlari ham saqlanib qoladi.
Turli provayderlar bu imkoniyatni turlicha ataydi: Cloudflare'da asosiy domenga CNAME qo'shilganda flattening avtomatik qo'llaniladi, boshqa ba'zi provayderlarda ALIAS yoki ANAME degan maxsus yozuv turi bor. AWS'ning o'z DNS xizmati Route 53 ham AWS resurslari uchun Alias yozuvini taklif qiladi. Shuni yodda tutingki, bu yozuvlar provayderning o'ziga xos funksiyasi, standart DNS turi emas, shuning uchun u faqat domeningizning nom serverlari shunday provayderda bo'lsa ishlaydi.
3-yechim: www asosiy manzil, asosiy domen esa yo'naltiradi
Agar DNS'ni boshqa provayderga ko'chirishni istamasangiz, eng ishonchli va universal yo'l — saytning asosiy manzili sifatida www ni tanlash. www platformaga CNAME orqali ulanadi, asosiy domen esa oddiy A yozuvi bilan o'zingizning hosting serveringizga ko'rsatiladi va u yerda barcha so'rovlar 301 yo'naltirish bilan www ga o'tkaziladi. Bu usulning yagona sharti — yo'naltiruvchi serverda asosiy domen uchun ham SSL sertifikat bo'lishi, aks holda https://misol-startap.uz ochilganda brauzer ogohlantirish chiqaradi.
# Nginx: asosiy domendan www ga 301 yo'naltirish
server {
listen 443 ssl;
server_name misol-startap.uz;
ssl_certificate /etc/letsencrypt/live/misol-startap.uz/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/misol-startap.uz/privkey.pem;
return 301 https://www.misol-startap.uz$request_uri;
}
# Apache .htaccess varianti
RewriteEngine On
RewriteCond %{HTTP_HOST} ^misol-startap\.uz$ [NC]
RewriteRule ^(.*)$ https://www.misol-startap.uz/$1 [R=301,L]
Platformalar bo'yicha qisqacha
| Platforma | Subdomen | Asosiy domen |
|---|---|---|
| Vercel | CNAME | Panelda ko'rsatilgan A yozuvi yoki flattening |
| Railway | CNAME | Flattening/ALIAS yoki www + yo'naltirish |
| AWS (ALB, CloudFront) | CNAME | Route 53 Alias, flattening yoki www + yo'naltirish |
Har bir platformaning aniq talablari vaqt o'tishi bilan o'zgarishi mumkin, shuning uchun jadvalni yo'nalish sifatida qabul qiling va yakuniy qiymatlarni platforma hujjatlaridan tekshiring.
Misol: startap frontendi Vercel'da, API Railway'da
Toshkentdagi kichik startap jamoasi frontendni Vercel'ga, API'ni esa Railway'ga joylashtirdi, domen va korporativ pochta esa O'zbekistondagi provayderda qoldi. Dasturchi dastlab asosiy domenga Railway bergan CNAME'ni qo'shmoqchi bo'ldi va panel xato berdi. Yechim quyidagicha bo'ldi: asosiy domen uchun Vercel panelida ko'rsatilgan A yozuvi qo'shildi, www Vercel'ga CNAME orqali ulandi, API esa api.misol-startap.uz subdomeniga Railway CNAME'i bilan o'tkazildi. MX va SPF yozuvlari asosiy domenda tegilmasdan qoldi va pochta bir daqiqa ham uzilmadi.
Ulangandan keyin tekshirish
Yozuvlarni qo'shgandan keyin ularning dunyoga qanday ko'rinishini tekshiring. Asosiy domen A yozuvlarini, www esa CNAME'ni qaytarishi, MX esa o'z joyida qolishi kerak. Platforma panelida domen holati «Valid» yoki shunga o'xshash yashil belgi bilan ko'rsatilishi, SSL sertifikat esa avtomatik chiqarilishi lozim.
dig misol-startap.uz A +short
dig www.misol-startap.uz CNAME +short
dig misol-startap.uz MX +short
curl -sI https://misol-startap.uz | head -n 3
Domeningiz sayt.uz'da bo'lsa, A, CNAME va MX yozuvlarini kabinetdagi DNS bo'limida qo'shishingiz mumkin, asosiy domendan www ga yo'naltirish uchun esa oddiy hosting tarifi ham yetarli.