Server Blocks and Virtual Hosts
2 min read
- Authors
- Name
- Vijaykumar Rajendran
- @vijayrajendran_

Table of Contents
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!