چطور دامنه را به سرور مجازی وصل کنیم؟
DNS، وبسرور و HTTPS بدون حدسزدن
وصلکردن دامنه فقط واردکردن IP در پنل ثبتکننده نیست. زنجیره زمانی کامل میشود که DNS نام را به IP درست برگرداند، وبسرور درخواست همان نام را بشناسد و گواهی TLS نیز برای آن نام صادر شده باشد. این راهنما هر لایه را جداگانه آزمایش میکند تا منشأ خطا روشن بماند.
پیش از تغییر DNS چه اطلاعاتی لازم است؟
ابتدا IPv4 عمومی VPS، نامهایی که قرار است پاسخ بدهند (برای نمونه example.com و www.example.com) و محل مدیریت DNS معتبر دامنه را یادداشت کنید. پنلی که دامنه را از آن خریدهاید لزوماً میزبان DNS نیست؛ nameserverهای ثبتشده مشخص میکنند رکورد باید در کدام سرویس ویرایش شود. تغییر در پنل اشتباه هیچ اثری بر پاسخ عمومی DNS ندارد.
روی سرور نیز باید یک وبسرور یا برنامه روی پورت موردنظر گوش کند و firewall دسترسی لازم را بدهد. پیش از جابهجایی، از تنظیمات فعلی DNS خروجی بگیرید و اگر سرویس فعلی حساس است، TTL را با فاصلهای مناسب از مهاجرت کاهش دهید. TTL فقط مدت cache را هدایت میکند و تضمین نمیکند همه resolverها در یک لحظه بهروز شوند.
رکورد A، AAAA و www را درست انتخاب کنید
رکورد A یک نام را به IPv4 و رکورد AAAA آن را به IPv6 نگاشت میکند. برای دامنه ریشه معمولاً نام @ یا خود دامنه و مقدار رکورد، IP عمومی VPS است. برای www میتوانید یک A جدا با همان IP یا CNAME به دامنه اصلی بسازید؛ روش دقیق به امکانات DNS provider بستگی دارد.
- فقط IP را در مقدار A بگذارید؛ پروتکل، پورت و مسیر URL بخشی از رکورد A نیستند.
- AAAA را صرفاً برای «کاملبودن» نسازید. اگر مسیر IPv6 کار نکند، بخشی از کاربران خطا میبینند.
- رکوردهای MX، TXT و سایر دادههای ایمیل را هنگام تغییر وبسایت بیدلیل دستکاری نکنید.
- اگر proxy یک ارائهدهنده DNS را فعال میکنید، بدانید نتیجه DNS به IPهای proxy اشاره میکند و آزمایش origin باید جدا انجام شود.
چرا DNS درست است اما سایت اشتباه باز میشود؟
یک IP میتواند میزبان چند دامنه باشد. وبسرور با نام موجود در درخواست HTTP تصمیم میگیرد کدام سایت را تحویل دهد؛ بنابراین باید server block، virtual host یا تنظیم دامنهی برنامه برای نام اصلی و www ساخته شود. اگر این مرحله انجام نشده باشد، ممکن است صفحه پیشفرض وبسرور یا سایت دیگری روی همان IP نمایش داده شود.
در Nginx، مفهوم کلیدی server_name و در Apache مفهوم ServerName/ServerAlias است. document root یا upstream باید به برنامه درست اشاره کند. پیش از reload، اعتبار پیکربندی را با ابزار خود وبسرور بررسی کنید و session فعلی مدیریت سرور را باز نگه دارید تا در صورت خطا راه بازگشت داشته باشید.
DNS، اتصال شبکه و پاسخ HTTP را جدا آزمایش کنید
با dig example.com A یا nslookup example.com ببینید resolver چه IPای برمیگرداند. پاسخ چند resolver میتواند در دوره انتشار متفاوت باشد. سپس با curl -I http://example.com status و headerهای HTTP را ببینید. اگر لازم است قبل از تغییر عمومی virtual host را بیازمایید، میتوانید نگاشت موقت فایل hosts روی رایانه خود بسازید؛ این آزمایش فقط همان رایانه را تحتتأثیر قرار میدهد.
Timeout معمولاً به route، firewall، port forwarding یا گوشنکردن سرویس مربوط است؛ پاسخ از سایت اشتباه بیشتر به virtual host؛ و NXDOMAIN یا IP قدیمی به DNS و cache اشاره دارد. این تفکیک جلوی تغییرهای همزمان و عیبیابی کور را میگیرد.
HTTPS را چه زمانی فعال کنیم؟
برای چالش رایج HTTP-01، مرجع صدور باید بتواند نام دامنه را resolve کند و پاسخ challenge را از مسیر HTTP دریافت کند. پس ابتدا DNS و دسترسی پورت وب را پایدار کنید، سپس از ACME client سازگار با وبسرور یا کنترلپنل استفاده کنید. گواهی باید همه نامهایی را که واقعاً استفاده میشوند، مانند دامنه اصلی و www، پوشش دهد.
پس از صدور، redirect از HTTP به HTTPS، تاریخ انقضا و تمدید خودکار را بررسی کنید. فعالکردن HSTS تصمیم جداگانهای است: تا وقتی HTTPS همه زیردامنههای درگیر بهدرستی کار نمیکند، آن را با دامنه گسترده یا مدت طولانی فعال نکنید؛ مرورگر ممکن است سیاست را cache کند.
چکلیست عیبیابی و جابهجایی کمریسک
ترتیب بررسی پیشنهادی این است: nameserver معتبر، رکورد و IP، پاسخ از resolver عمومی، بازبودن پورت، پاسخ وبسرور برای Host درست، سپس TLS. در مهاجرت، سرویس قدیمی را تا پایان انتشار و آزمون نگه دارید و دادههای پویا مثل سفارش یا نظر را برای لحظه برش برنامهریزی کنید. تغییر همزمان DNS، وبسرور و برنامه بدون نقطه بازگشت، تشخیص خطا را سخت میکند.
پس از اطمینان، دامنه اصلی ترجیحی را انتخاب و نسخه دیگر را با redirect دائمی به آن هدایت کنید، canonicalهای برنامه و لینکهای داخلی را کنترل کنید و مانیتورینگ HTTP/TLS بگذارید. اتصال فنی دامنه بهتنهایی به معنی آمادهبودن برنامه، ایمیل یا بکاپ نیست.
پرسشهای پرتکرار
برای اتصال دامنه باید nameserver را عوض کنم یا رکورد A کافی است؟
اگر DNS معتبر دامنه همین حالا در یک provider فعال است، معمولاً ویرایش رکورد A در همانجا کافی است. nameserver را فقط وقتی عوض کنید که میخواهید کل میزبانی DNS را منتقل کنید؛ در آن صورت باید همه رکوردهای لازم را نیز منتقل کنید.
چرا دامنه با IP جدید باز نمیشود ولی خود IP پاسخ میدهد؟
پاسخ DNS را بررسی کنید و مطمئن شوید virtual host وبسرور نام دامنه را میشناسد. cache محلی یا عمومی، ویرایش رکورد در DNS غیرمعتبر و تنظیمنبودن server_name از علتهای رایجاند.
آیا برای www رکورد جدا لازم است؟
بله، اگر میخواهید www نیز کار کند باید برای آن A/AAAA یا CNAME مناسب داشته باشید و وبسرور و گواهی TLS هم آن نام را پوشش دهند.
آیا میتوانم پورت برنامه را داخل رکورد A بنویسم؟
خیر. A فقط نام را به IPv4 نگاشت میکند. پورت با URL، reverse proxy یا رکوردهای مخصوص برخی پروتکلها مدیریت میشود؛ مرورگر برای HTTP/HTTPS به پورتهای قراردادی یا پورت صریح URL میرود.
چقدر طول میکشد DNS منتشر شود؟
زمان ثابت و تضمینشدهای ندارد و به TTL قبلی، cache resolverها و زمان اعمال provider بستگی دارد. پاسخ authoritative و چند resolver عمومی را مقایسه کنید، نه اینکه فقط منتظر یک عدد عمومی بمانید.
چرا گواهی Let’s Encrypt صادر نمیشود؟
برای HTTP-01 معمولاً نام باید به سرور درست resolve شود و مسیر challenge از اینترنت قابل دسترسی باشد. AAAA خراب، proxy یا redirect نامناسب، firewall و virtual host اشتباه را نیز بررسی کنید.
منابع رسمی و مطالعه بیشتر
برای دامنهات یک سرور لینوکسی آماده کن
منابع و سیستمعاملهای موجود را ببین و پیش از سفارش با نیاز واقعی برنامه تطبیق بده.