what does the virtual host do with apache 24 code example

Example 1: virtual host apache

# File: /etc/apache2/sites-available/domain1.com.conf

<VirtualHost *:80>

  # Server Name (domain name) and any aliases
  
  ServerName  domain1.com
  ServerAlias www.domain1.com
  
  #OPTIONAL Admin name
  ServerAdmin [email protected]


  # Index file and Document Root (where the public files are located)
  DirectoryIndex index.html
  DocumentRoot /home/demo/public_html/domain1.com/public


  # Custom log file locations, OPTIONAL:
  LogLevel warn
  ErrorLog /var/log/apache2/error-mydomainname.com.log
  CustomLog /var/log/apache2/access-mydomainname.com.log combined

</VirtualHost>

# Enabling:
# sh ~ $
sudo a2ensite domain1.com # Refer to above ServerName!
# The utility may automatically suggest, but run:
sudo /etc/init.d/apache2 reload
# To restart apache!

Example 2: APACHE MULTIPLE HOstnames

# Ensure that Apache listens on port 80
Listen 80
<VirtualHost *:80>
    DocumentRoot "/www/example1"
    ServerName www.example.com

    # Other directives here
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/www/example2"
    ServerName www.example.org

    # Other directives here
</VirtualHost>