آموزش CDN و سرعت سایت

رکورد CNAME چیست و چطور دامنه را به CDN وصل کنیم؟

تهیه: کلودیفای (نگارش با کمک هوش مصنوعی) · انتشار: · زمان مطالعه: ۵ دقیقه

CNAMETTL 3600CNAMECDNآموزش CDN و سرعت سایترکورد CNAME چیست وچطور دامنه را به CDNوصل کنیم؟مجلهٔ کلودیفایclodify.net/blog
پاسخ کوتاه

رکورد CNAME در DNS می‌گوید «این نام، نام مستعار نام دیگری است». مثلاً cdn.example.com می‌تواند CNAME به ساب‌دامین اختصاصی شما در CDN باشد؛ هر بار آی‌پی‌های CDN تغییر کنند، دامنهٔ شما خودکار به آی‌پی جدید می‌رسد. برای اتصال به CDN کلودیفای، یک ساب‌دامنه را در پنل ثبت کنید، رکورد CNAME آن را بسازید (در Cloudflare حالت DNS only) و منتظر تأیید و صدور خودکار گواهی بمانید.

CNAME و رکورد A چه فرقی دارند؟

ویژگی رکورد A رکورد CNAME
به چه چیزی اشاره می‌کند؟ مستقیماً به یک آی‌پی (IPv4) به یک نام دامنهٔ دیگر
تغییر آی‌پی مقصد باید دستی به‌روز شود خودکار دنبال می‌شود
روی دامنهٔ اصلی (example.com) مجاز معمولاً مجاز نیست
کاربرد رایج اتصال دامنه به سرور اتصال ساب‌دامنه به CDN یا سرویس‌های ابری

نکتهٔ مهم: برای یک نام نمی‌توانید هم‌زمان رکورد CNAME و رکورد دیگری (مثل A) داشته باشید. پیش از ساخت CNAME، رکوردهای قبلی همان نام را حذف کنید.

رکورد A
  • نام را مستقیماً به یک آی‌پی IPv4 وصل می‌کند
  • با تغییر آی‌پی سرور باید دستی عوض شود
  • روی ریشهٔ دامنه (example.com) مجاز است
در برابر
رکورد CNAME
  • نام را به یک نام دیگر ارجاع می‌دهد
  • اگر آی‌پی مقصد عوض شود، خودکار دنبال می‌شود
  • روی ریشهٔ دامنه طبق استاندارد مجاز نیست
شکل ۱ رکورد A به آدرس اشاره می‌کند، CNAME به یک نام دیگر.

اتصال ساب‌دامنه به CDN کلودیفای

  1. در پنل کلودیفای، CDN را فعال کنید تا ساب‌دامین اختصاصی شما ساخته شود.
  2. از «مدیریت سرویس‌ها ← دامنهٔ اختصاصی ← افزودن ساب‌دامنه»، نامی مثل cdn.example.com را ثبت کنید.
  3. در پنل DNS دامنهٔ خود، یک رکورد CNAME با نام cdn و مقدار ساب‌دامین اختصاصی‌تان بسازید.
  4. منتظر بمانید تا رکورد تأیید شود؛ سپس گواهی TLS خودکار صادر می‌شود و وضعیت دامنه «فعال» می‌شود.

تا زمانی که وضعیت دامنهٔ شخصی «فعال» نشده، از ساب‌دامین اختصاصی کلودیفای استفاده کنید.

تنظیم CNAME در پنل‌های رایج

Cloudflare

در بخش DNS گزینهٔ Add record را بزنید، Type را CNAME، Name را ساب‌دامنه (مثلاً cdn) و Target را ساب‌دامین اختصاصی خود قرار دهید. Proxy status را روی DNS only (ابر خاکستری) بگذارید؛ اگر ابر نارنجی باشد، ترافیک از Cloudflare عبور می‌کند و تأیید دامنه و صدور گواهی انجام نمی‌شود.

پنل‌های DNS ایرانی و پنل هاستینگ

در بخش مدیریت DNS یا Zone Editor، رکورد جدید از نوع CNAME بسازید. در برخی پنل‌ها باید نام کامل (cdn.example.com.) را با نقطهٔ پایانی وارد کنید و در برخی فقط بخش ساب‌دامنه (cdn) را؛ راهنمای همان پنل را دنبال کنید.

مقدار TTL

TTL کوتاه (مثلاً ۳۰۰ ثانیه) باعث می‌شود تغییرات سریع‌تر اعمال شوند.

تست رکورد CNAME

در ترمینال لینوکس یا مک:

dig +short cdn.example.com CNAME
dig +short cdn.example.com

در ویندوز:

nslookup -type=CNAME cdn.example.com

خروجی دستور اول باید ساب‌دامین اختصاصی شما باشد. پس از فعال شدن، با دستور زیر هدرها و گواهی را بررسی کنید:

curl -I https://cdn.example.com

خطاهای رایج و راه‌حل

مشکل علت محتمل راه‌حل
دامنه تأیید نمی‌شود رکورد A یا AAAA هم‌نام وجود دارد رکوردهای دیگر همان نام را حذف کنید
دامنه تأیید نمی‌شود Proxy در Cloudflare روشن است روی DNS only بگذارید
تغییر اعمال نمی‌شود TTL قبلی طولانی بوده تا پایان TTL قبلی صبر کنید
خطای گواهی اتصال پیش از «فعال» شدن دامنه تا فعال شدن از ساب‌دامین اختصاصی استفاده کنید
مقدار اشتباه تایپ ناقص ساب‌دامین مقصد مقدار را از پنل کپی کنید

سایر رکوردهای DNS که باید بشناسید

CNAME فقط یکی از انواع رکوردهای DNS است. برای مدیریت دامنه، این رکوردها را هم بشناسید:

رکورد کاربرد مثال
A اتصال نام به آی‌پی نسخهٔ ۴ example.com → 203.0.113.10
AAAA اتصال نام به آی‌پی نسخهٔ ۶ example.com → 2001:db8::10
CNAME نام مستعار برای نام دیگر cdn.example.com → xyz.provider.net
MX سرور دریافت ایمیل example.com → mail.example.com (اولویت ۱۰)
TXT متن دلخواه؛ تأیید مالکیت، SPF و DKIM v=spf1 include:... ~all
NS سرورهای نام دامنه ns1.dns-provider.com
CAA تعیین مرجع مجاز صدور گواهی SSL 0 issue "letsencrypt.org"

نکته دربارهٔ CAA: اگر برای دامنه رکورد CAA تعریف کرده‌اید، مطمئن شوید مرجعی که CDN یا سرور شما برای صدور گواهی استفاده می‌کند مجاز باشد؛ وگرنه صدور گواهی خودکار شکست می‌خورد.

زنجیرهٔ CNAME چطور حل می‌شود؟

وقتی مرورگر آدرس cdn.example.com را باز می‌کند:

  1. از DNS می‌پرسد آی‌پی cdn.example.com چیست.
  2. DNS پاسخ می‌دهد: این نام CNAME به xyz.provider.net است.
  3. مرورگر (در واقع Resolver) آی‌پی xyz.provider.net را می‌پرسد.
  4. آی‌پی نهایی برگردانده می‌شود و اتصال برقرار می‌شود.

این زنجیره چند میلی‌ثانیه طول می‌کشد و نتیجه طبق TTL کش می‌شود. زنجیره‌های طولانی (CNAME به CNAME به CNAME) را تا حد امکان کوتاه نگه دارید.

ارجاعحل نامپاسخwww.example.comپرسش کاربرCNAMEedge.cdn-host.netرکورد Aآی‌پی لبهکاربراتصالارجاعحل نامپاسخwww.example.comپرسش کاربرCNAMEedge.cdn-host.netرکورد Aآی‌پی لبهکاربراتصال
شکل ۲ ریزالور زنجیرهٔ CNAME را دنبال می‌کند تا به رکورد A برسد؛ هر حلقهٔ اضافه کمی زمان حل نام را بیشتر می‌کند.

CNAME و ایمیل

یک اشتباه رایج: ساختن CNAME برای نامی که رکورد MX یا TXT هم دارد. چون CNAME نمی‌تواند با رکورد دیگری هم‌نام باشد، این کار ایمیل دامنه را مختل می‌کند. به همین دلیل CDN را روی ساب‌دامنه‌ای جدا (مثل cdn یا api) راه‌اندازی کنید، نه روی دامنهٔ اصلی که ایمیل دارد.

سناریوهای کاربردی CNAME

  • www به دامنهٔ اصلی: www.example.com CNAME به example.com.
  • اتصال به CDN: ساب‌دامنه به آدرس اختصاصی CDN؛ راهنمای عملی در تنظیم CNAME در CDN کلودیفای.
  • سرویس‌های ابری: فروشگاه‌ساز، سرویس ایمیل مارکتینگ یا صفحهٔ وضعیت که آدرس مقصد خود را برای CNAME می‌دهند.
  • مهاجرت بی‌دردسر: وقتی آی‌پی سرویس مقصد عوض می‌شود، لازم نیست رکورد شما تغییر کند.

پس از تغییر رکورد

تغییرات DNS بسته به TTL قبلی ممکن است از چند دقیقه تا چند ساعت طول بکشد تا همه‌جا دیده شود. توضیح کامل و روش بررسی در انتشار DNS چقدر طول می‌کشد. اگر پس از اتصال به CDN سایت باز نشد، سایت پس از اتصال به CDN باز نمی‌شود را ببینید.

سؤالات متداول

می‌توانم دامنهٔ اصلی (بدون www) را CNAME کنم؟

طبق استاندارد DNS معمولاً نه؛ برای دامنهٔ اصلی برخی ارائه‌دهندگان DNS قابلیت «CNAME Flattening» یا ALIAS دارند. ساده‌ترین راه، استفاده از یک ساب‌دامنه مثل cdn یا api است.

اعمال رکورد CNAME چقدر طول می‌کشد؟

معمولاً چند دقیقه؛ اگر رکورد قبلی TTL طولانی داشته، تا پایان آن زمان ممکن است طول بکشد.

گواهی SSL را خودم باید نصب کنم؟

خیر؛ پس از تأیید دامنه، گواهی TLS در CDN کلودیفای خودکار صادر و تمدید می‌شود.

CNAME روی سرعت سایت اثر منفی دارد؟

یک پرس‌وجوی DNS اضافه انجام می‌شود که معمولاً چند میلی‌ثانیه است و پس از کش شدن تقریباً بی‌اثر است.

مقدار CNAME باید با نقطه تمام شود؟

در برخی پنل‌ها نقطهٔ پایانی (FQDN) لازم است و در برخی خودکار اضافه می‌شود. اگر پنل نقطه را خودکار اضافه نمی‌کند و شما هم نگذارید، ممکن است نام دامنهٔ شما به انتهای مقدار اضافه شود؛ پس از ذخیره، مقدار را با dig بررسی کنید.

چند ساب‌دامنه می‌توانند به یک مقصد CNAME شوند؟

از نظر DNS محدودیتی نیست؛ اما در سرویس مقصد (مثلاً CDN) هر ساب‌دامنه باید جداگانه ثبت و تأیید شود.

آماده‌اید؟ سرورتان را بسازید.

از ۱٬۲۰۰ تومان در ساعت · پرداخت ریالی

سرورتان را همین حالا بسازید.

ساعتی بپردازید. هر وقت خواستید حذف کنید.