اتصال دامنه به سرور مجازی؛ راهنمای کامل رکورد A تا SSL

آموزش گام‌به‌گام اتصال دامنه به سرور مجازی؛ از تنظیم رکورد A در DNS تا پیکربندی وب‌سرور و صدور گواهینامه SSL. با مثال‌های عملی و رفع اشکال.

۶ دقیقه به‌روزرسانی ۱۸ شهریور ۱۴۰۵

چرا اتصال دامنه به سرور مجازی پیچیده به نظر می‌رسد؟

وقتی یک سرور مجازی (VPS) خریداری می‌کنید، در واقع یک IP عمومی و اختصاصی در اختیار دارید. اما کاربران شما با نام دامنه وارد می‌شوند، نه با IP. اتصال دامنه به سرور یعنی برقراری پلی بین این دو: نام دامنه باید به IP سرور شما اشاره کند، وب‌سرور باید درخواست‌ها را برای آن دامنه بپذیرد، و در نهایت ارتباط امن HTTPS برقرار شود. در این مقاله، دقیقاً همین مسیر را قدم‌به‌قدم طی می‌کنیم؛ بدون حاشیه و با مثال‌های واقعی.

بسیاری از کاربران تصور می‌کنند اتصال دامنه به سرور فقط یک تنظیم ساده در پنل DNS است. اما اگر وب‌سرور (Apache یا Nginx) برای دامنه شما پیکربندی نشده باشد، با خطای Domain is not configured یا صفحه پیش‌فرض سرور مواجه می‌شوید. در ادامه، هر سه لایه را پوشش می‌دهیم: DNS، وب‌سرور و SSL.

مرحله اول: تنظیم رکورد A در DNS برای اتصال دامنه به سرور

رکورد A (Address Record) ساده‌ترین و مهم‌ترین نوع رکورد DNS است که یک نام دامنه را به یک IPv4 نگاشت می‌کند. برای اتصال دامنه به سرور، باید این رکورد را در سرویس DNS دامنه خود (که معمولاً نزد رجیسترار یا هاست دامنه است) ایجاد کنید.

دسترسی به پنل مدیریت DNS

بسته به اینکه دامنه خود را از کجا خریده‌اید، مسیر دسترسی متفاوت است. معمولاً در پنل کاربری، بخشی به نام DNS Management، Zone Editor یا Manage DNS وجود دارد. اگر دامنه شما روی سرورهای نام (Nameservers) شرکت دیگری باشد، باید از همان پنل استفاده کنید.

ایجاد رکورد A برای دامنه اصلی و زیردامنه www

دو رکورد A جداگانه ایجاد کنید:

  1. دامنه اصلی (مثلاً example.com): در فیلد Name یا Host مقدار @ یا خالی بگذارید (بسته به پنل). مقدار Value یا Points to را IP سرور خود قرار دهید.
  2. زیردامنه www (مثلاً www.example.com): در فیلد Name مقدار www را وارد کنید و همان IP را در Value بگذارید.

مثال واقعی از یک رکورد A در فایل زون:

example.com.  3600  IN  A  185.10.20.30
www.example.com.  3600  IN  A  185.10.20.30

عدد 3600 مقدار TTL (Time To Live) است که به ثانیه است. یعنی یک ساعت. اگر در حال تست هستید، می‌توانید TTL را به 300 (۵ دقیقه) کاهش دهید تا تغییرات سریع‌تر اعمال شوند.

بررسی انتشار DNS

بعد از ذخیره رکوردها، انتشار در سرورهای DNS سراسر دنیا ممکن است از چند دقیقه تا ۲۴ ساعت طول بکشد. برای بررسی سریع، از دستور زیر در ترمینال استفاده کنید:

dig example.com A +short
dig www.example.com A +short

خروجی باید IP سرور شما را نشان دهد. همچنین می‌توانید از ابزارهای آنلاین مثل dnschecker.org استفاده کنید.

اشتباه رایج: بسیاری از کاربران فقط رکورد A را برای @ تنظیم می‌کنند و www را فراموش می‌کنند. نتیجه: وقتی کاربر با www وارد می‌شود، خطای DNS دریافت می‌کند. همیشه هر دو رکورد را ایجاد کنید، یا حداقل یک رکورد CNAME برای www به دامنه اصلی بسازید.

مرحله دوم: پیکربندی وب‌سرور برای پذیرش دامنه

حالا که DNS به IP سرور اشاره می‌کند، باید وب‌سرور (Apache یا Nginx) را طوری تنظیم کنید که درخواست‌های مربوط به دامنه شما را پردازش کند. در غیر این صورت، مرورگر صفحه پیش‌فرض یا خطای 404 نمایش می‌دهد.

پیکربندی Nginx (مثال عملی)

فرض کنید از Nginx استفاده می‌کنید و دامنه شما example.com است. ابتدا یک فایل کانفیگ جدید در مسیر /etc/nginx/sites-available/ ایجاد کنید:

sudo nano /etc/nginx/sites-available/example.com

محتوای زیر را وارد کنید:

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com;
    index index.html index.php;

    location / {
        try_files $uri $uri/ =404;
    }
}

سپس یک لینک سمبلیک به پوشه sites-enabled بسازید و کانفیگ را تست کنید:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

اگر از PHP-FPM استفاده می‌کنید، بلاک location ~ \.php$ را نیز اضافه کنید.

پیکربندی Apache (مثال عملی)

برای Apache، یک VirtualHost در مسیر /etc/apache2/sites-available/ بسازید:

sudo nano /etc/apache2/sites-available/example.com.conf

محتوای پیشنهادی:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com

    <Directory /var/www/example.com>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

سپس سایت را فعال و سرویس را ری‌استارت کنید:

sudo a2ensite example.com.conf
sudo systemctl restart apache2

تست اتصال دامنه به سرور

بعد از پیکربندی، در مرورگر آدرس http://example.com را باز کنید. اگر محتوای پوشه /var/www/example.com را دیدید، یعنی اتصال دامنه به سرور با موفقیت انجام شده است. اگر خطای 403 یا 404 دیدید، مطمئن شوید که فایل index.html در پوشه root وجود دارد و دسترسی‌ها صحیح است.

نکته عیب‌یابی: اگر بعد از تنظیم DNS و وب‌سرور همچنان صفحه پیش‌فرض Nginx یا Apache را می‌بینید، احتمالاً کانفیگ دامنه شما لود نشده است. با دستور sudo nginx -T | grep server_name (برای Nginx) بررسی کنید که دامنه شما در لیست server_name ها وجود دارد.

مرحله سوم: صدور گواهینامه SSL برای اتصال امن

بعد از اینکه اتصال دامنه به سرور برقرار شد، نوبت به HTTPS می‌رسد. امروزه گواهینامه SSL نه‌تنها برای امنیت، بلکه برای سئو و اعتماد کاربران ضروری است. ساده‌ترین راه، استفاده از Let's Encrypt و ابزار Certbot است.

نصب Certbot و صدور گواهینامه

ابتدا Certbot را نصب کنید (مثال برای Ubuntu/Debian):

sudo apt update
sudo apt install certbot python3-certbot-nginx

سپس برای Nginx دستور زیر را اجرا کنید:

sudo certbot --nginx -d example.com -d www.example.com

برای Apache:

sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d example.com -d www.example.com

Certbot به‌صورت خودکار گواهینامه را صادر، کانفیگ وب‌سرور را برای HTTPS به‌روزرسانی و ریدایرکت HTTP به HTTPS را فعال می‌کند. بعد از اجرا، آدرس https://example.com را تست کنید.

تغییر رکوردهای DNS بعد از SSL

یک نکته مهم: اگر از رکوردهای A مستقیم استفاده می‌کنید، بعد از SSL تغییری لازم نیست. اما اگر از CDN یا Reverse Proxy استفاده می‌کنید، باید مطمئن شوید که گواهینامه برای دامنه اصلی صادر شده و تنظیمات SSL در CDN فعال است.

تجدید خودکار گواهینامه

گواهینامه‌های Let's Encrypt ۹۰ روز اعتبار دارند. برای تجدید خودکار، یک تایمر سیستم‌د (systemd timer) به‌صورت پیش‌فرض نصب می‌شود. با دستور زیر می‌توانید بررسی کنید:

sudo systemctl list-timers | grep certbot

اگر تایمر فعال نبود، یک cron job اضافه کنید:

0 3 * * * /usr/bin/certbot renew --quiet
اشتباه رایج: برخی کاربران بعد از صدور SSL، رکورد A را تغییر می‌دهند یا دامنه را به سرور دیگری منتقل می‌کنند اما گواهینامه را تجدید نمی‌کنند. نتیجه: خطای SSL certificate mismatch یا هشدار امنیتی در مرورگر. همیشه بعد از تغییر IP یا سرور، گواهینامه را دوباره صادر کنید.

جمع‌بندی و چک‌لیست نهایی

اتصال دامنه به سرور مجازی شامل سه لایه مجزاست که هر کدام باید به‌درستی انجام شوند:

  • DNS: رکورد A برای دامنه اصلی و www به IP سرور اشاره کند.
  • وب‌سرور: VirtualHost یا Server Block برای دامنه شما تعریف شده باشد.
  • SSL: گواهینامه معتبر صادر و ریدایرکت HTTPS فعال باشد.

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

پیشنهاد می‌کنم این چک‌لیست را ذخیره کنید و بعد از هر تغییر در DNS یا سرور، دوباره مرور کنید. اتصال دامنه به سرور اگرچه در نگاه اول چند مرحله‌ای به نظر می‌رسد، اما با این راهنما در کمتر از ۳۰ دقیقه قابل انجام است.

آیا این مطلب برایتان مفید بود؟