Sometimes, you may want to isolate apps by IP, simulate geo-location diversity, or prepare separate API backends — all from a single VM. Thankfully, Vultr makes it possible using Reserved IPs.

Let’s walk through how you can host:
demo1.yourdomain.com→ bound to Mumbai IPdemo2.yourdomain.com→ bound to Delhi IP
→ on a single Ubuntu server.
But you want to:
- Keep everything on one server
- Assign each domain a unique static IP
- Make them look geographically distributed or separated
This tutorial walks you through how to pull this off using Vultr Reserved IPs and Nginx.
Step 1: Spin Up a Vultr VM
- Launch a VPS in Mumbai
- Choose Ubuntu 22.04
- Note the assigned IP (e.g.,
65.20.91.120)

Step 2: Add a Reserved IP from Another Region
- Go to your VM → Settings → IP & DNS
- Click “Add IP Address”
- Choose Delhi as the region
- Provision the IP (e.g.,
65.20.72.117)

Step 3: Configure Netplan
sudo nano /etc/netplan/10-ens3.yaml
Paste:
network:
version: 2
renderer: networkd
ethernets:
enp1s0:
dhcp4: no
addresses: [65.20.91.120/23, 65.20.72.117/32]
nameservers:
addresses: [108.61.10.10]
routes:
- to: default
via: 65.20.90.1
- to: 169.254.0.0/16
via: 65.20.90.1
metric: 100
Then run:
sudo chmod 600 /etc/netplan/10-ens3.yaml
sudo netplan apply

Step 4: Restart the Server (Important)
Use the “Restart” button in Vultr dashboard. This activates routing on the new IP.

Step 5: Configure DNS Records
Use Cloudflare (or your registrar’s DNS):
| Subdomain | Type | Value | Proxy |
|---|---|---|---|
demo1.yourdomain.com | A | 65.20.91.120 | DNS Only |
demo2.yourdomain.com | A | 65.20.72.117 | DNS Only |
Step 6: Install and Configure Nginx
sudo apt update && sudo apt install nginx -y
Create Site Folders:
sudo mkdir -p /var/www/demo1.yourdomain.com
sudo mkdir -p /var/www/demo2.yourdomain.com
echo "Hello from Mumbai" | sudo tee /var/www/demo1.yourdomain.com/index.html
echo "Hello from Delhi" | sudo tee /var/www/demo2.yourdomain.com/index.html
Create Nginx Configs:
demo1.yourdomain.com
sudo nano /etc/nginx/sites-available/demo1.yourdomain.com
server {
listen 80 default_server;
server_name demo1.yourdomain.com;
root /var/www/demo1.yourdomain.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
demo2.yourdomain.com
sudo nano /etc/nginx/sites-available/demo2.yourdomain.com
server {
listen 65.20.72.117:80;
server_name demo2.yourdomain.com;
root /var/www/demo2.yourdomain.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Enable Both Sites:
sudo ln -s /etc/nginx/sites-available/demo1.yourdomain.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/demo2.yourdomain.com /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl reload nginx
🧪 Step 7: Test with Ping
🖥 From Local PC:
C:\Users\Admin1>ping demo1.yourdomain.com
Pinging demo1.yourdomain.com [65.20.91.120] with 32 bytes of data:
Reply from 65.20.91.120: bytes=32 time=14ms TTL=53
Reply from 65.20.91.120: bytes=32 time=14ms TTL=53
Reply from 65.20.91.120: bytes=32 time=14ms TTL=53
Reply from 65.20.91.120: bytes=32 time=14ms TTL=53
Ping statistics for 65.20.91.120:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss)
C:\Users\Admin1>ping demo2.yourdomain.com
Pinging demo2.yourdomain.com [65.20.72.117] with 32 bytes of data:
Reply from 65.20.72.117: bytes=32 time=14ms TTL=53
Reply from 65.20.72.117: bytes=32 time=14ms TTL=53
Reply from 65.20.72.117: bytes=32 time=14ms TTL=53
Reply from 65.20.72.117: bytes=32 time=13ms TTL=53
Ping statistics for 65.20.72.117:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss)
Optional: Add Free SSL with Certbot
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d demo1.yourdomain.com -d demo2.yourdomain.com
DNS Only vs Cloudflare Proxy — What the End User Sees
| Setting | What End User Sees | What Actually Happens |
|---|---|---|
| DNS Only | Your server’s real IP, direct | Requests hit your server directly |
| Proxy (CF) | Cloudflare IP | Requests are routed through Cloudflare’s edge |
Why Use DNS Only?
- You need port 80 open for SSL certs
- You want users to hit your real server directly
- Ideal for testing and multi-IP routing
Why Use Cloudflare Proxy?
- Hides your server’s IP
- Adds DDoS protection, caching, firewall
Conclusion
You now have:
- Two working domains
- Two static IPs (Mumbai + Delhi)
- One Nginx server serving both cleanly
- Clear routing, low latency, and perfect separation
This setup is perfect for devs, startups, or side projects looking to save infrastructure costs without compromising on structure.