There are 2 types of VirtualHosting:
1. Name Based Virtual Hosting
2. IP Based Virtual Hosting
1. Name Based Virtual Hosting:
In this we host multiple websites on Single IP.
Here is the basic configuration for name based virtual hosting in httpd.conf:
========================
NameVirtualHost ganesh.com <———–
<VirtualHost ganesh.com>
ServerAdmin webmaster@ganesh.com
DocumentRoot /var/www/html
ServerName ganesh.com
ServerAlias www.ganesh.com
ErrorLog logs/ganesh.com-error_log
CustomLog logs/ganesh.com-access_log common
</VirtualHost>
<VirtualHost ganesh1.com>
ServerAdmin webmaster@ganesh1.com
DocumentRoot /web/www.ganesh1.com
ServerName ganesh1.com
ServerAlias www.ganesh11.com
ErrorLog logs/ganesh1.com-error_log
CustomLog logs/ganesh1.com-access_log common
</VirtualHost>
<VirtualHost ganesh2.com>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /web/www.ganesh2.com
ServerName ganesh2.com
ServerAlias www.ganesh2.com
ErrorLog logs/ganesh2.com-error_log
CustomLog logs/ganesh2.com-access_log common
</VirtualHost>
======================================================
2. IP Based Virtual Hosting:
For this OS must support IP Multiplexing. In this one IP for one site.
======================================================
<VirtualHost 192.168.0.1>
ServerAdmin webmaster@ganesh.com
DocumentRoot /var/www/html
ServerName ganesh.com
ServerAlias www.ganesh.com
ErrorLog logs/ganesh.com-error_log
CustomLog logs/ganesh.com-access_log common
</VirtualHost>
<VirtualHost 192.168.0.2>
ServerAdmin webmaster@ganesh1.com
DocumentRoot /web/www.ganesh1.com
ServerName ganesh1.com
ServerAlias www.ganesh1.com
ErrorLog logs/ganesh1.com-error_log
CustomLog logs/ganesh1.com-access_log common
</VirtualHost>
<VirtualHost 192.168.0.3>
ServerAdmin webmaster@ganesh2.com
DocumentRoot /web/www.ganesh2.com
ServerName ganesh2.com
ServerAlias www.ganesh2.com
ErrorLog logs/ganesh2.com-error_log
CustomLog logs/ganesh2.com-access_log common
</VirtualHost>
======================================================