ساخت Virtual Host در Nginx برای چند دامنه
با virtual host میتوانید چند سایت را روی یک سرور با دامنههای جدا اجرا کنید.
آخرین بهروزرسانی: ۲۸ مهر ۱۴۰۵ · زمان مطالعه: حدود 3 دقیقه · سطح: کاربردی
- ساخت Virtual Host در Nginx برای چند دامنه
- پوشه سایت و فایل index را بسازید
- پیکربندی را تست و reload کنید
چرا این موضوع مهم است؟
موضوع Nginx یکی از پایههای نگهداری سرور است. رعایت آن باعث پایداری بیشتر، کاهش ریسک امنیتی و صرفهجویی در زمان پشتیبانی میشود.
اگر تازه سرور خریدهاید، این آموزش نقطه شروع خوبی برای آشنایی با سرویس و جلوگیری از خطاهای رایج است.
پیشنیازها
- دسترسی SSH با کاربر root یا کاربر دارای sudo
- Ubuntu 22.04/24.04 یا Debian 12 (سازگاری با توزیعهای مشابه)
- نسخه پشتیبان از فایلها و دیتابیسهای مهم
راهنمای گامبهگام
گام 1 — پوشه سایت و فایل index را بسازید
پوشه سایت و فایل index را بسازید. مقدارهای نمونه را با اطلاعات واقعی سرور خود جایگزین کنید و از اجرای دستور با مقادیر پیشفرض پرهیز کنید.
گام 2 — یک فایل server block جدید ایجاد کنید
یک فایل server block جدید ایجاد کنید. برای اطمینان، نتیجه را از یک مسیر دوم (مرورگر، کلاینت یا ابزار مانیتورینگ) هم بررسی کنید.
گام 3 — server_name و root را تنظیم کنید
server_name و root را تنظیم کنید. این کار را در بازه کمترافیک انجام دهید و در صورت نیاز کاربران را از قبل مطلع کنید.
گام 4 — لاگ جداگانه برای سایت تعریف کنید
لاگ جداگانه برای سایت تعریف کنید. این مرحله را با دقت انجام دهید و خروجی دستور را بررسی کنید تا از اعمال درست تغییرات مطمئن شوید.
گام 5 — لینک به sites-enabled بسازید
لینک به sites-enabled بسازید. پس از اجرا، وضعیت سرویس و لاگها را کنترل کنید؛ تغییر بدون بررسی میتواند خطای پنهان ایجاد کند.
گام 6 — پیکربندی را تست و reload کنید
پیکربندی را تست و reload کنید. اگر روی چند سرور کار میکنید، این مورد را یکبار روی محیط تست اجرا و سپس روی تولید اعمال کنید.
نمونه دستورها
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example;
index index.php index.html;
}نکات امنیتی و بهینهسازی
- لاگها را پایش کنید تا رفتار غیرعادی زودتر شناسایی شود.
- تغییرات را مستند کنید تا در آینده یا هنگام تحویل به تیم دیگر قابل پیگیری باشد.
- رمزها و کلیدها را در فایلهای محافظتشده نگه دارید و هرگز در کد یا مخزن عمومی قرار ندهید.
خطاهای رایج و راهحل
- خطای اتصال شبکه را با dig، ping و ss بررسی کنید؛ ممکن است فایروال یا DNS مقصر باشد.
- اگر سرویس بالا نیامد، ابتدا journalctl و فایل خطای همان سرویس را بخوانید.
- خطای اتصال شبکه را با dig، ping و ss بررسی کنید؛ ممکن است فایروال یا DNS مقصر باشد.
سؤالات متداول
اگر دامنه به سرور وصل نباشد چه میشود؟
Nginx همان سایت را نشان میدهد ولی مرورگر به IP دیگری میرود؛ ابتدا DNS را تنظیم کنید.
چطور سایت پیشفرض را حذف کنم؟
لینک default را از sites-enabled بردارید و Nginx را reload کنید.
میلاد سرور پلنهای اقتصادی سرور مجازی ایران و سرور مجازی آلمان را با آیپی اختصاصی و قیمت شفاف ارائه میکند. برای مقایسه همه کشورها فهرست کامل سرورهای بینالملل را ببینید.
جمعبندی
گام بعدی پیشنهادی: یک برنامه بکاپ خودکار و مانیتورینگ آپتایم برای همین سرویس راهاندازی کنید.