DEV Community

Cover image for একটা Dedicated Server এ অনেকগুলো আলাদা domain চালানো
SWAPNIL AHMMED SHISHIR
SWAPNIL AHMMED SHISHIR

Posted on

একটা Dedicated Server এ অনেকগুলো আলাদা domain চালানো

1️⃣ মূল আইডিয়া (Concept)

একটা server এর একটাই IP থাকে, কিন্তু সেই IP তে অনেকগুলো domain point করতে পারে

Example:

Domain Server IP
example1.com 103.xxx.xxx.xxx
example2.com 103.xxx.xxx.xxx
example3.com 103.xxx.xxx.xxx

সব domain একই server এ আসবে, তারপর web server (Nginx বা Apache) দেখে ঠিক করবে কোন domain এর request কোন folder থেকে serve হবে।


2️⃣ Step 1: Domain DNS Server এ Point করা

প্রথমে domain এর DNS এ গিয়ে A Record add করতে হবে।

Example:

Type: A
Name: @
Value: 103.163.xxx.xxx
Enter fullscreen mode Exit fullscreen mode

Example domains:

example1.com → 103.xxx.xxx.xxx
example2.com → 103.xxx.xxx.xxx
Enter fullscreen mode Exit fullscreen mode

সবগুলো একই server এ যাবে।


3️⃣ Step 2: Server এ আলাদা Folder বানানো

Server এ প্রতিটা domain এর জন্য আলাদা folder রাখা ভালো।

Example:

/var/www/

example1.com
example2.com
example3.com
Enter fullscreen mode Exit fullscreen mode

Structure:

/var/www/example1.com
/var/www/example2.com
/var/www/example3.com
Enter fullscreen mode Exit fullscreen mode

4️⃣ Step 3: Nginx Virtual Host Setup

Nginx ব্যবহার করলে প্রতিটা domain এর জন্য server block বানাতে হয়।

Example:

/etc/nginx/sites-available/example1.com
Enter fullscreen mode Exit fullscreen mode

Config:

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

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

    location / {
        try_files $uri $uri/ =404;
    }
}
Enter fullscreen mode Exit fullscreen mode

আরেকটা domain:

/etc/nginx/sites-available/example2.com
Enter fullscreen mode Exit fullscreen mode
server {
    listen 80;
    server_name example2.com www.example2.com;

    root /var/www/example2.com;
}
Enter fullscreen mode Exit fullscreen mode

5️⃣ Step 4: Enable Site

ln -s /etc/nginx/sites-available/example1.com /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/example2.com /etc/nginx/sites-enabled/
Enter fullscreen mode Exit fullscreen mode

তারপর reload

sudo systemctl reload nginx
Enter fullscreen mode Exit fullscreen mode

6️⃣ SSL Add করা (HTTPS)

Let's Encrypt দিয়ে:

sudo certbot --nginx -d example1.com -d www.example1.com
Enter fullscreen mode Exit fullscreen mode

7️⃣ Final Result

একই server এ:

example1.com → /var/www/example1.com
example2.com → /var/www/example2.com
example3.com → /var/www/example3.com
Enter fullscreen mode Exit fullscreen mode

সবগুলো একই server কিন্তু আলাদা website


💡 Real Example (Production)

একটা dedicated server এ এমন হতে পারে:

/var/www
   ecommerce.com
   blog.com
   companysite.com
   api.companysite.com
Enter fullscreen mode Exit fullscreen mode

🔥 MERN Project হলে কিভাবে হবে

যদি Node.js app হয়:

pm2 start app.js --name ecommerce
pm2 start app.js --name blog
Enter fullscreen mode Exit fullscreen mode

তারপর nginx দিয়ে reverse proxy:

example.com → localhost:3000
blog.com → localhost:4000
Enter fullscreen mode Exit fullscreen mode

Top comments (0)