Virtual Hosts Made Easy: Enabling and Disabling Sites in Nginx

Setting up and managing virtual hosts, also known as server blocks, is a crucial skill for any web developer or system administrator. Virtual hosts allow you to host multiple websites on a single server, each with its own configuration and domain. Nginx, a powerful and efficient web server, offers a straightforward approach to achieve this through its virtual host configuration. In this tutorial, we’ll walk you through the process of enabling and disabling sites using virtual hosts in Nginx.

Understanding Virtual Hosts

What are Virtual Hosts?

Virtual hosts are a mechanism that enables a single physical server to host multiple websites with distinct configurations. This means that a single server can serve content for different domains, providing a seamless experience for visitors.

Why Use Virtual Hosts?

Virtual hosts are particularly useful for conserving resources by hosting multiple websites on the same server. They also facilitate better organization and separation of concerns, allowing you to manage each site’s configuration independently.

Setting Up Nginx

Installing Nginx

Before getting started with virtual hosts, ensure that Nginx is installed on your server. If not, you can install it using package managers like apt or yum.

Nginx Configuration Structure

Nginx’s configuration is organized into a hierarchical structure. The main configuration file is usually located at /etc/nginx/nginx.conf, and additional configurations for each virtual host are stored in individual files within the /etc/nginx/conf.d/ directory.

Creating Virtual Hosts

Step 1: Prepare Site Files

Before creating virtual hosts, make sure your website files are placed in an appropriate directory, such as /var/www/your_site.

Step 2: Create Virtual Host Configuration

Create a new configuration file for your virtual host within the /etc/nginx/conf.d/ directory. Name it something like your_site.conf.

Step 3: Configure Virtual Host

In the virtual host configuration file, specify the server block settings, including the server_name, root directory, and other relevant options.

Enabling and Disabling Virtual Hosts

Enabling Sites

To enable a virtual host, create a symbolic link from the configuration file in the sites-available directory to the sites-enabled directory.

Disabling Sites

To disable a virtual host, simply remove the symbolic link from the sites-enabled directory.

Testing and Reloading Configuration

Testing Configuration

Before applying changes, validate the configuration using nginx -t to catch any syntax errors.

Reloading Nginx

After making configuration changes, use the nginx -s reload command to apply the new settings without restarting the server.


Mastering virtual hosts in Nginx opens up a world of possibilities for efficiently managing multiple websites on a single server. By understanding the concepts behind virtual hosts and following the steps outlined in this tutorial, you can confidently enable, disable, and manage various sites, ensuring a smooth and organized web hosting experience.

Related Articles