Skip to main content

Server Blocks Configuration

Configure Nginx to serve multiple websites on the same server using server blocks.


Server Block Setup​

1. Create Server Block File​

sudo nano /etc/nginx/sites-available/example.com

2. Add Server Block Configuration​

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

location / {
try_files $uri $uri/ =404;
}

error_log /var/log/nginx/example.com_error.log;
access_log /var/log/nginx/example.com_access.log;
}

3. Create Web Directory​

sudo mkdir -p /var/www/example.com
sudo chown -R www-data:www-data /var/www/example.com

4. Enable Site​

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

5. Disable Default Site (Optional)​

sudo rm /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl reload nginx

Multiple Server Blocks​

Example: Two Sites​

# Site 1
server {
listen 80;
server_name site1.com;
root /var/www/site1.com;
index index.html;
}

# Site 2
server {
listen 80;
server_name site2.com;
root /var/www/site2.com;
index index.html;
}

Quick Commands​

TaskCommand
Enable sitesudo ln -s /etc/nginx/sites-available/site /etc/nginx/sites-enabled/
Disable sitesudo rm /etc/nginx/sites-enabled/site
List sitesls /etc/nginx/sites-enabled/
Test configsudo nginx -t

Note: Always test configuration and reload Nginx after changes.