ورود به پنل ثبت‌ نام

چند دامنه روی یک سرور

راهنمای اجرای چند دامنه روی یک سرور با وب‌سرور جلویی و گواهی SSL خودکار. چه زمانی این کار به‌صرفه است و چه زمانی سرور جدا بگیرید.

قیمت‌ها، شروع از تهران

هزینه به‌صورت روزانه از کیف پول شما کسر می‌شود. هر زمان سرور را حذف کنید، کسر هزینه متوقف می‌شود. ارقام زیر مربوط به ارزان‌ترین لوکیشن است؛ قیمت در سایر لوکیشن‌ها متفاوت است.

پردازنده حافظه دیسک NVMe هزینه روزانه تقریباً ماهانه
۱ هسته ۱ گیگابایت ۳۰ گیگابایت ۲۸,۰۰۰ تومان ۸۴۰,۰۰۰ تومان ساخت سرور
۲ هسته ۲ گیگابایت ۵۰ گیگابایت ۴۴,۰۰۰ تومان ۱,۳۲۰,۰۰۰ تومان ساخت سرور
۲ هسته ۴ گیگابایت ۸۰ گیگابایت ۶۲,۰۰۰ تومان ۱,۸۶۰,۰۰۰ تومان ساخت سرور
۴ هسته ۸ گیگابایت ۱۶۰ گیگابایت ۱۱۴,۰۰۰ تومان ۳,۴۲۰,۰۰۰ تومان ساخت سرور

قیمت‌ها بدون احتساب مالیات بر ارزش افزوده است و در صورتحساب نهایی اضافه می‌شود. رقم ماهانه تقریبی و بر پایه ۳۰ روز محاسبه شده است. منابع دلخواه خود را می‌توانید در صفحه ساخت سرور دقیق‌تر تنظیم کنید.

وقتی دومین پروژه‌تان را راه می‌اندازید، با یک محدودیت ساده روبه‌رو می‌شوید: فقط یک سرویس می‌تواند پورت ۴۴۳ را بگیرد. سرور شما یک آی‌پی دارد و همه دامنه‌ها به همان آی‌پی اشاره می‌کنند، پس چیزی باید تصمیم بگیرد کدام درخواست به کدام سرویس برود.

آن چیز، وب‌سرور جلویی است. روی پورت‌های ۸۰ و ۴۴۳ می‌نشیند، نام دامنه درخواستی را می‌خواند و ترافیک را به سرویس درست هدایت می‌کند. به‌عنوان جایزه، گواهی SSL همه دامنه‌ها را هم یک‌جا مدیریت می‌کند.

یک سرور یا چند سرور؟

پیش از راه‌اندازی، این تصمیم را آگاهانه بگیرید:

یک سرور بزرگ‌تر چند سرور کوچک
هزینه کمتر بیشتر
مدیریت و به‌روزرسانی یک سیستم چند سیستم
جداسازی خرابی یک خرابی همه را می‌گیرد هر پروژه مستقل
رقابت بر سر منابع وجود دارد ندارد
پیچیدگی راه‌اندازی وب‌سرور جلویی لازم است ساده‌تر

یک سرور را وقتی انتخاب کنید که پروژه‌ها متعلق به خودتان باشند، ترافیک متوسطی داشته باشند و قطعی کوتاه فاجعه نباشد. این حالت اکثریت موارد است.

چند سرور را وقتی بگیرید که پروژه‌ها متعلق به مشتریان مختلف‌اند، یا یکی از آن‌ها حساسیت بالایی دارد. جداسازی در این حالت ارزش هزینه اضافه را دارد.

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

انتخاب منابع

منابع را بر اساس مجموع نیاز سرویس‌ها انتخاب کنید. خود وب‌سرور جلویی تقریباً چیزی مصرف نمی‌کند:

چه چیزی میزبانی می‌کنید پردازنده حافظه دیسک
۲ تا ۳ سایت کم‌بازدید ۱ هسته ۲ گیگابایت ۴۰ گیگابایت
۵ تا ۱۰ سایت با دیتابیس ۲ هسته ۴ گیگابایت ۸۰ گیگابایت
چند پروژه فعال ۴ هسته ۸ گیگابایت ۱۵۰ گیگابایت

اگر سایت‌ها وردپرسی هستند، صفحه سرور برای وردپرس سایزبندی را بر اساس ترافیک دقیق‌تر توضیح می‌دهد. هر نمونه وردپرس با دیتابیس خودش حدود ۵۰۰ مگابایت تا ۱ گیگابایت حافظه می‌خواهد.

چطور کار می‌کند

معماری ساده است. هر سرویس روی پورت داخلی خودش اجرا می‌شود و فقط از خود سرور در دسترس است؛ وب‌سرور جلویی تنها چیزی است که روی اینترنت باز است:

اینترنت → پورت 443 → وب‌سرور جلویی ┬→ سرویس ۱ روی 127.0.0.1:3000
                                    ├→ سرویس ۲ روی 127.0.0.1:8080
                                    └→ سرویس ۳ روی 127.0.0.1:5000

نکته امنیتی مهم این است که سرویس‌ها باید به 127.0.0.1 محدود شوند، نه 0.0.0.0. اگر با داکر کار می‌کنید این تفاوت حیاتی است و توضیح کاملش در صفحه سرور برای داکر آمده — داکر قوانین فایروال خودش را اضافه می‌کند و می‌تواند تنظیمات UFW را دور بزند.

گواهی SSL خودکار

مدیریت دستی گواهی برای ده دامنه کار طاقت‌فرسایی است. ابزارهای وب‌سرور جلویی امروزی این را خودکار می‌کنند: گواهی رایگان Let's Encrypt را می‌گیرند، نصب می‌کنند و پیش از انقضا تمدید می‌کنند.

سه نکته که معمولاً مشکل‌ساز می‌شوند:

۱. رکورد DNS باید از قبل فعال باشد. اعتبارسنجی Let's Encrypt دامنه را بررسی می‌کند؛ اگر رکورد A هنوز منتشر نشده، صدور شکست می‌خورد.

۲. پورت ۸۰ باید باز باشد، حتی اگر می‌خواهید همه ترافیک را به HTTPS هدایت کنید. اعتبارسنجی از همان پورت انجام می‌شود.

۳. محدودیت نرخ Let's Encrypt. اگر چند بار پشت سر هم صدور را امتحان کنید و شکست بخورد، موقتاً محدود می‌شوید. پس اول DNS را درست کنید، بعد گواهی بگیرید.

خطاهای رایج و معنایشان

وقتی چیزی کار نمی‌کند، خطای وب‌سرور جلویی معمولاً دقیقاً می‌گوید مشکل کجاست:

خطا معنای معمول
502 Bad Gateway سرویس مقصد بالا نیست یا روی پورت دیگری گوش می‌دهد
504 Gateway Timeout سرویس بالاست اما دیر پاسخ می‌دهد
404 از خود وب‌سرور جلویی برای این دامنه قاعده‌ای تعریف نشده
صفحه اشتباه نمایش داده می‌شود دو قاعده با هم تداخل دارند
خطای گواهی در مرورگر صدور یا تمدید SSL شکست خورده

502 شایع‌ترین است و تقریباً همیشه یک دلیل دارد: نام یا پورت سرویس مقصد اشتباه است. اگر با داکر کار می‌کنید، وب‌سرور جلویی باید سرویس را با نام کانتینر صدا بزند نه localhost — چون از دید آن کانتینر، localhost خودش است نه میزبان.

بررسی سریع اینکه سرویس واقعاً بالاست:

docker ps                       # کانتینر در حال اجراست؟
curl -I http://127.0.0.1:3000   # از خود سرور پاسخ می‌دهد؟

اگر curl از روی سرور جواب داد اما وب‌سرور جلویی 502 می‌دهد، مشکل در پیکربندی مقصد است نه در خود سرویس.

راه‌اندازی

آموزش نصب Nginx Proxy Manager مسیر کامل را با رابط گرافیکی پوشش می‌دهد؛ برای کسی که نمی‌خواهد فایل پیکربندی Nginx بنویسد، ساده‌ترین راه است.

پیش از آن به داکر نیاز دارید — آموزش نصب داکر — و سرور را امن کنید.

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

نگهداری

کار چطور چه زمانی
بررسی وضعیت گواهی‌ها از پنل مدیریت ماهانه
به‌روزرسانی سرویس‌ها docker compose pull && docker compose up -d ماهانه
بررسی فضای دیسک df -h ماهانه
بررسی لاگ دسترسی از پنل یا docker logs هنگام بررسی مشکل
گرفتن اسنپ‌شات از کنترل پنل ابر سپهر پیش از تغییر پیکربندی

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

جمع‌بندی

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

اگر پروژه‌ها متعلق به مشتریان مختلف‌اند، جداسازی روی سرورهای مستقل ارزش هزینه اضافه را دارد — چون روی یک سرور، مشکل یکی مشکل همه است.

ساخت سرور ابری برای میزبانی چند دامنه

سوال‌های پرتکرار

چند دامنه می‌توانم روی یک سرور اجرا کنم؟ +

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

وب‌سرور جلویی دقیقاً چه کار می‌کند؟ +

روی پورت‌های ۸۰ و ۴۴۳ گوش می‌دهد، نام دامنه‌ای که کاربر درخواست کرده را می‌خواند و درخواست را به سرویس درست روی سرور هدایت می‌کند. بدون آن، فقط یک سرویس می‌تواند این پورت‌ها را بگیرد.

گواهی SSL برای هر دامنه جدا لازم است؟ +

بله، اما نگرانی ندارد. ابزارهایی مثل Nginx Proxy Manager گواهی رایگان Let's Encrypt را برای هر دامنه خودکار می‌گیرند و پیش از انقضا تمدید می‌کنند.

اگر یکی از سایت‌ها ترافیک زیادی بگیرد چه می‌شود؟ +

بقیه سایت‌های همان سرور کند می‌شوند، چون منابع مشترک است. اگر پروژه‌ها متعلق به مشتریان مختلف است، این ریسک را در نظر بگیرید.

زیردامنه هم پشتیبانی می‌شود؟ +

بله، زیردامنه‌ها دقیقاً مثل دامنه اصلی مدیریت می‌شوند. الگوی رایج این است که هر سرویس داخلی روی زیردامنه خودش قرار بگیرد.

به چه رکورد DNS نیاز دارم؟ +

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

آموزش‌های مرتبط

کاربردها دیگر

آخرین به‌روزرسانی: ۰۹ مرداد ۱۴۰۵