The cart is empty

In today's digital landscape, it's common for a single physical server infrastructure to host multiple websites. For this purpose, we can utilize a Virtual private server (VPS) and the Apache HTTP Server, a software tool that allows for the configuration of virtual hosts. Virtual hosting enables the Apache server to process requests for multiple web domains on a single server. This article will guide you through the basic steps of configuring a VPS to host multiple domains using Apache virtual hosts.

Prerequisites

Before we begin, it's necessary to have Apache HTTP Server installed and running on your VPS. Additionally, the domains you wish to host must be correctly configured in your DNS (Domain Name System).

Step 1: Installing Apache HTTP Server

If Apache is not yet installed, you can install it using your distribution's package manager. For Debian/Ubuntu, use:

sudo apt update
sudo apt install apache2

For CentOS/RHEL, use:

sudo yum update
sudo yum install httpd

After installation, make sure Apache is running and set to start at system boot.

Step 2: Configuring Virtual Hosts

Virtual hosts in Apache are configured by creating configuration files in the /etc/apache2/sites-available directory (Debian/Ubuntu) or /etc/httpd/conf.d/ directory (CentOS/RHEL). Create a new configuration file for each domain. An example configuration for example.com domain:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
    CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost>

This block defines the basic configuration for the domain, including the server name, document path, and log file locations.

Step 3: Enabling Virtual Hosts

After creating configuration files for your domains, you need to enable them. In Debian/Ubuntu, this is done using the a2ensite command:

sudo a2ensite example.com.conf

For CentOS/RHEL, simply ensure the file is in the correct directory and Apache will automatically load it.

Step 4: Restarting Apache

To apply the new virtual host configurations, Apache server must be restarted:

sudo systemctl restart apache2

or for CentOS/RHEL:

sudo systemctl restart httpd

Step 5: Testing

After restarting Apache, ensure your websites are accessible. You can use a browser or a tool like curl to verify that the server correctly responds to requests for your domains.

 

Configuring a VPS to host multiple domains using Apache virtual hosts is a process that requires careful setup and testing. Follow the steps outlined above to ensure each domain is correctly configured and accessible to users. Don't forget to regularly update your software and monitor logs for potential issues.