ایک سرور پر متعدد سائٹس
ایک VPS پر درجنوں سائٹس کی میزبانی کیسے کریں: ڈائریکٹری لے آؤٹ، الگ کنفگ اور یوزرز، مشترکہ سرٹیفکیٹ، اور ٹیئر کے مطابق لوڈ کا اندازہ۔
اپ ڈیٹ 23 اگست، 2026
ایک ہی عوامی IPv4 ایڈریس کئی ڈومینز کی خدمت کر سکتا ہے: ویب سرور Host ہیڈر کی بنیاد پر درخواستیں روٹ کرتا ہے۔ حد ایڈریسز کی نہیں — بلکہ آپ کے ٹیئر کی میموری اور ڈسک کی ہے۔
لے آؤٹ
ایک ہی ٹیمپلیٹ رکھیں، ورنہ چھ ماہ بعد آپ بتا نہیں سکیں گے کہ کون سی سائٹ کس کی ہے:
/var/www/example.ru/public
/var/www/example.ru/logs
/var/www/shop.ru/public
/var/www/shop.ru/logs
ہر سائٹ کے لیے الگ کنفگ فائل رکھیں: /etc/nginx/sites-available/<domain>، جو sites-enabled میں سم لنک کے ذریعے فعال ہو۔ پھر کسی سائٹ کو بند کرنے کا مطلب ایک سم لنک ڈیلیٹ کر کے ری لوڈ کرنا ہے، نہ کہ مشترکہ فائل میں صحیح حصہ ڈھونڈنا۔
کنفگریشن
server {
listen 80;
server_name example.ru www.example.ru;
root /var/www/example.ru/public;
index index.html index.php;
access_log /var/www/example.ru/logs/access.log;
}
نامعلوم ڈومینز کے لیے ایک ”کیچ آل سائٹ“ بھی سیٹ اپ کریں، ورنہ حروف تہجی کے لحاظ سے پہلی کنفگ آپ کے ایڈریس کی طرف اشارہ کرنے والے کسی بھی تیسرے فریق کے ڈومین کے لیے کھل جائے گی:
server {
listen 80 default_server;
server_name _;
return 444;
}
اجازتوں کو الگ کرنا
اگر سائٹیں مختلف کلائنٹس یا مختلف پروجیکٹس کی ہیں، تو انہیں مشترکہ یوزر نہ دیں: ورنہ ایک اسکرپٹ میں سوراخ کا مطلب ان سب تک رسائی ہے۔
useradd -r -d /var/www/example.ru -s /usr/sbin/nologin site-example
chown -R site-example:www-data /var/www/example.ru
chmod 750 /var/www/example.ru
PHP کے لیے، ہر سائٹ کے لیے الگ FPM پول بنائیں جس کا اپنا user اور listen ہو — دیکھیں PHP-FPM۔ اپنے ڈیٹا بیسز بھی الگ کریں: users and grants۔
سرٹیفکیٹس
certbot کی ایک ہی رن بیک وقت کئی ڈومینز کور کر لیتی ہے:
certbot --nginx -d example.ru -d www.example.ru -d shop.ru -d www.shop.ru
رینیول مشترکہ ہے، ایک ٹائمر۔ تفصیلات — Let's Encrypt۔
کتنی سائٹیں فٹ ہوں گی
ڈومینز کی تعداد سے نہیں، میموری سے گنیں۔ ایک اسٹیٹک سائٹ تقریباً کچھ نہیں لیتی؛ ڈیٹا بیس والی CMS سائٹ سینکڑوں میگا بائٹ لیتی ہے۔
| ٹیئر | میموری | رہنمائی |
|---|---|---|
| VDS-1 (2 GB) | 2 GB | 1–2 CMS سائٹیں یا ایک درجن اسٹیٹک |
| VDS-2 (4 GB) | 4 GB | 3–5 CMS سائٹیں |
| VDS-3 (8 GB) | 8 GB | 8–12 CMS سائٹیں |
ڈسک بھی محدود ہے: VDS-1 پر 40 GB، VDS-6 پر 250 GB۔ آپ صرف اپنا پلان اپ گریڈ کر سکتے ہیں، ادائیگی شدہ مدت کے باقی دنوں کا فرق ادا کر کے۔
عام غلطیاں
| علامت | وجہ |
|---|---|
| تمام ڈومینز ایک ہی سائٹ دکھاتے ہیں | server_name میچ نہیں ہوا، اس لیے پہلے بلاک نے درخواست سنبھال لی |
| تمام سائٹس کے لاگز ایک فائل میں | سائٹ بلاک میں access_log سیٹ نہیں ہے |
| ایک سائٹ نے سب کچھ گرا دیا | مشترکہ PHP-FPM پول بغیر حدود کے |
| ڈسک کی جگہ ختم | لاگز اور بیک اپ ایک ہی ڈسک پر — logrotate سیٹ اپ کریں |
ایک اور سائٹ شامل کرنے سے پہلے، پینل کے ”Overview“ میں
/hosting/vds/m/<id>پر پچھلے ہفتے کے میموری گراف دیکھیں۔ اگر چوٹی پہلے ہی حد پر ہے، تو نئی سائٹ کریشز کی وجہ بنے گی، نتیجہ نہیں۔