Server Blocks and Virtual Hosts

2 min read

Authors
banner

Server Blocks and Virtual Hosts

What are Virtual Hosts?

Virtual hosting allows you to run multiple websites on a single server using different domain names.

Basic Server Block

server {
    listen 80;
    server_name example.com;
    root /var/www/example;

    location / {
        try_files $uri =404;
    }
}

Multiple Sites Example

server {
    listen 80;
    server_name blog.example.com;
    root /var/www/blog;
}

server {
    listen 80;
    server_name api.example.com;

    location / {
        proxy_pass http://localhost:3000;
    }
}

Enable/Disable Sites

# Create site config
sudo nano /etc/nginx/sites-available/example.com

# Enable site
sudo ln -s /etc/nginx/sites-available/example.com \
           /etc/nginx/sites-enabled/

# Disable site
sudo rm /etc/nginx/sites-enabled/example.com

# Test and reload
sudo nginx -t
sudo systemctl reload nginx

Virtual hosting made easy!

© 2025 Vijay Rajendran