Show Categories

How to Host Multiple Websites on a Single Server: Apache & IIS Guide

Navigating the complexities of web hosting can often lead to the underutilization of server resources, especially when managing multiple websites. This article addresses this challenge by demonstrating how to host multiple websites on a single server. By leveraging the capabilities of Apache on Linux systems (Ubuntu and CentOS) and Internet Information Services (IIS) on Windows, users can maximize their server's potential, streamline website management, and significantly reduce overhead costs. This guide empowers server administrators with step-by-step instructions to optimize their hosting environment, ensuring each website operates seamlessly under a consolidated server setup.

Apache Configuration for Ubuntu and CentOS

This section guides you through the process of configuring Apache to host multiple websites on a single server, specifically tailored for Ubuntu and CentOS systems.

Prerequisites

Update your system's package database:

Ubuntu/Debian:

sudo apt update sudo apt upgrade -y

CentOS/RHEL:

sudo yum update -y

Ensure you have sudo privileges to perform administrative tasks.

Step 1: Install Apache

Ubuntu/Debian:

sudo apt install apache2 -y

CentOS/RHEL (The package is named httpd):

sudo yum install httpd -y

Step 2: Create Directories

Create a root directory for each website:

sudo mkdir -p /var/www/domain.com/public_html sudo mkdir -p /var/www/domain2.com/public_html

Replace

domain.com
and
domain2.com
with your actual domain names.

Create Directories

Step 3: Assign Permissions

Set the permissions to allow the web server to access the content:

sudo chown -R $USER:$USER /var/www/domain.com/public_html sudo chown -R $USER:$USER /var/www/domain2.com/public_html sudo chmod -R 755 /var/www
Assign Permissions

Step 4: Create Index Pages

Create a simple index.html file for each domain:

echo "Welcome to domain.com" | sudo tee /var/www/domain.com/public_html/index.html echo "Welcome to domain2.com" | sudo tee /var/www/domain2.com/public_html/index.html

Step 5: Configure Virtual Hosts

Copy the default configuration file and edit it for each domain:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain.com.conf sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain2.com.conf

Edit the virtual host file for domain.com:

sudo nano /etc/apache2/sites-available/domain.com.conf

Inside the file, make the necessary changes:

<VirtualHost *:80> ServerAdmin [email protected] ServerName domain.com ServerAlias www.domain.com DocumentRoot /var/www/domain.com/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Configure Virtual Hosts

Repeat the process for domain2.com.

Step 6: Enable Sites

Enable the new sites and disable the default site:

sudo a2ensite domain.com.conf sudo a2ensite domain2.com.conf sudo a2dissite 000-default.conf
Enable Sites

Step 7: Restart Apache

Restart Apache to apply the changes:

Ubuntu/Debian:

sudo systemctl restart apache2

CentOS/RHEL:

sudo systemctl restart httpd

Step 8: Edit Hosts File and Test Websites

Edit Hosts File:

  • Open the hosts file with a text editor:
sudo nano /etc/hosts
  • Add entries for your domains pointing to the server's IP address, for example:
192.168.1.10 domain.com 192.168.1.10 domain2.com
Edit Hosts File
  • Save and close the file.

Alternatively Update DNS A Records:

If you have registered domains, update the A records in your DNS settings to point to your server's IP address.

Test Websites with Curl:

Test your websites to ensure they are accessible:

curl http://domain.com curl http://domain2.com
Test Websites with Curl

IIS Configuration for Windows Server

This section provides a comprehensive walkthrough for setting up multiple websites on a single server using Internet Information Services (IIS) on Windows Server.

Step 1: Install IIS using Add Roles and Features Wizard

  1. Open Server Manager: Click on the Server Manager icon on the taskbar, or open it from the Start menu.

  2. Launch Add Roles and Features Wizard: In the Server Manager dashboard, click on Manage and then select Add Roles and Features.

  3. Role-Based or Feature-Based Installation: Choose Role-based or feature-based installation and click on Next.

Select Installation Type
  1. Select Server: Choose the server on which you want to install IIS and click on Next.

  2. Add Roles: In the Roles section, check the box for

    Web Server (IIS)
    . When prompted to add features that are required for Web Server (IIS), click on Add Features.

Select Server Roles
  1. Features: No additional features are required unless you have specific needs. Click on Next.
Select Features
  1. Web Server Role (IIS): Review the information and click on Next.

  2. Role Services: Select the IIS role services to install. For a basic web server, the default selections are typically sufficient. Click on Next.

Select Role Services
  1. Confirmation: Review your selections and click on Install. The installation process will begin.

  2. Completion: Once the installation is complete, click on Close.

Step 2: Add Websites

  1. Open IIS Manager: Press Windows key + R, type inetmgr, and press Enter.
Open IIS Manager
  1. Create a New Website: Right-click on the Sites folder in the IIS Manager and select Add Website.

  2. Website Details:

  • Site name: Enter a descriptive name.

  • Physical path: Select the folder containing your website's files.

  • Type: Usually http.

  • IP address: Select an IP or leave as All Unassigned.

  • Port: Typically 80 for HTTP.

  • Host name: Enter the domain name.

Add Website
  1. Repeat for Additional Websites: Follow the same steps for each website.

Step 3: Configure Host Headers

  1. Select a Website: Click on the website in IIS Manager.

  2. Open Bindings: In the Actions panel, click on Bindings.

Open Bindings
  1. Edit or Add Binding: In Site Bindings, edit an existing binding or click on Add.

  2. Specify Host Name: Enter the hostname in the Host name field.

Specify Host Name
  1. Repeat for Additional Websites: Follow the same steps for each website.

Step 4: Manage DNS and Edit Hosts File

  1. Update DNS Records: For your domain names to be resolved to your IIS server, update the DNS A records to point to the server's public IP address. This is necessary if you are using registered domain names.

  2. Edit the Hosts File (Optional): If you don't have a domain and want to test locally, you can edit the hosts file on your local machine (not the server). This file is typically located at C:\Windows\System32\drivers\etc\hosts. Add entries for each of your websites pointing to the IP address of your IIS server. For example:

192.168.1.10 domain.com 192.168.1.10 domain2.com

Replace 192.168.1.10 with the IP address of your Windows Server. Remember, this change will only make the websites accessible on the machine where you edit the hosts file.

Edit the Hosts File

Step 5: Verify Websites

Open a web browser and navigate to each domain to ensure that the websites are being served correctly. If you edited the hosts file, do this on the machine where you made the edits. You should see the content of the website if everything is configured properly.

Test in Browser

Step 6: Additional Configurations (Optional)

  1. SSL Certificates: If you plan to use HTTPS, you'll need to install and configure SSL certificates for each site.

  2. Application Pools: Consider creating separate application pools for each website for better management and security.

  3. Security Settings: Review and configure security settings as per your requirements.

Each website will be accessible via its own domain name, sharing the same server resources.

In conclusion, hosting multiple websites on a single server using Apache or IIS is efficient and cost-effective. By following the detailed steps provided for Ubuntu, CentOS, and Windows Server, you can streamline web management and optimize server resources, ensuring a robust online presence. If you have any questions, feel free to contact us by submitting a ticket.

cloudzy
© 2008-2024 Cloudzy. All rights reserved.
75 Reviews|4.9 Average