একটি সার্ভারে একাধিক সাইট
একটি VPS-এ এক ডজন সাইট হোস্ট করার পদ্ধতি: ডিরেক্টরি লেআউট, আলাদা কনফিগ ও ইউজার, শেয়ার করা সার্টিফিকেট, এবং টিয়ার অনুযায়ী লোড অনুমান।
আপডেট: ২৩ আগস্ট, ২০২৬
একটি পাবলিক 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। আপনার ডেটাবেসও আলাদা করুন: ইউজার ও গ্রান্ট।
সার্টিফিকেট
একটি 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 | ১–২টি CMS সাইট বা এক ডজন স্ট্যাটিক সাইট |
| VDS-2 (4 GB) | 4 GB | ৩–৫টি CMS সাইট |
| VDS-3 (8 GB) | 8 GB | ৮–১২টি CMS সাইট |
ডিস্কও সীমিত: VDS-1-এ 40 GB, VDS-6-এ 250 GB। আপনি শুধু আপনার প্ল্যান আপগ্রেড করতে পারবেন, পেইড পিরিয়ডের বাকি দিনগুলোর পার্থক্য পরিশোধ করে।
সাধারণ ভুল
| লক্ষণ | কারণ |
|---|---|
| সব ডোমেইন একই সাইট দেখায় | server_name মেলেনি, তাই প্রথম ব্লকটি রিকোয়েস্ট হ্যান্ডেল করেছে |
| সব সাইটের লগ এক ফাইলে | সাইট ব্লকে access_log সেট করা নেই |
| একটি সাইট সবকিছু ডাউন করে দিল | লিমিট ছাড়া শেয়ার করা PHP-FPM পুল |
| ডিস্ক স্পেস শেষ | লগ ও ব্যাকআপ একই ডিস্কে — logrotate সেট করুন |
আরেকটি সাইট যোগ করার আগে
/hosting/vds/m/<id>-এ প্যানেলের “Overview”-তে গত এক সপ্তাহের মেমোরি গ্রাফ দেখুন। পিক যদি ইতিমধ্যেই সিলিংয়ে থাকে, তাহলে নতুন সাইট ক্র্যাশের কারণ হবে, ফলাফল নয়।