25.7. Virtual Hosts
The Apache HTTP Server's built in virtual hosting allows the server to provide different information based on which IP address, hostname, or port is being requested. A complete guide to using virtual hosts is available online at http://httpd.apache.org/docs/2.2/vhosts/.
25.7.1. Setting Up Virtual Hosts
To create a name-based virtual host, it is best to use the virtual host container provided in
httpd.conf
as an example.
The virtual host example read as follows:
#NameVirtualHost *:80 # #<VirtualHost *:80> # ServerAdmin webmaster@dummy-host.example.com # DocumentRoot /www/docs/dummy-host.example.com # ServerName dummy-host.example.com # ErrorLog logs/dummy-host.example.com-error_log # CustomLog logs/dummy-host.example.com-access_log common #</VirtualHost>
To activate name-based virtual hosting, uncomment the
NameVirtualHost
line by removing the hash mark (#
) and replace the asterisk (*
) with the IP address assigned to the machine.
Next, configure a virtual host by uncommenting and customizing the
<VirtualHost>
container.
On the
<VirtualHost>
line, change the asterisk (*
) to the server's IP address. Change the ServerName
to a valid DNS name assigned to the machine, and configure the other directives as necessary.
The
<VirtualHost>
container is highly customizable and accepts almost every directive available within the main server configuration.
Note
If configuring a virtual host to listen on a non-default port, that port must be added to the
Listen
directive in the global settings section of /etc/httpd/conf/httpd.conf
file.
To activate a newly created virtual host, the Apache HTTP Server must be reloaded or restarted. Refer to Section 25.3, “Starting and Stopping
httpd
” for further instructions.
Comprehensive information about creating and configuring both name-based and IP address-based virtual hosts is provided online at http://httpd.apache.org/docs/2.2/vhosts/.