Configuring Virtual Hosts in Apache

index

The configuration detailed here represents the Apache virtual host configuration which gives the web server administrator the greatest flexibility and freedom for specifying virtual hosts based on both name and port number. Obviously not all configuration directive have been included; I didn't want to confuse the issue by including a full httpd.conf/httpsd.conf file -- only the directive which must or should be specified when configuring virtual hosts.

My second disclaimer is that httpd.conf files are like anything else in the sysadmin world-- everyone has their own individual preferences. My configurations are based on the following principles:

NameVirtualHost 172.16.17.92:80
NameVirtualHost 172.16.17.92:8080

<VirtualHost 172.16.17.92:80>
	# Configuration for http://joe.domain.com #
    ServerName joe.domain.com
    ServerAdmin webmaster@joe.domain.com
    DocumentRoot /usr/home/joe/www/
    ScriptAlias /cgi-bin/ /usr/home/joe/cgi-bin/
    Alias /images/ /usr/home/joe/images/
    ErrorLog /usr/home/joe/log/error_log-joe.domain.com
    CustomLog /usr/home/joe/log/access_log-joe.domain.com common
</VirtualHost> 
<Directory /usr/home/joe/www>
	Options Indexes FollowSymLinks Includes ExecCGI
	Order allow,deny
	Allow from all
</Directory>

<VirtualHost 172.16.17.92:8080>
	# Configuration for http://joe.domain.com:8080 #
    ServerName joe.domain.com
    ServerAdmin webmaster@joe.domain.com
    DocumentRoot /usr/home/joe/www8080/
    ScriptAlias /cgi-bin/ /usr/home/joe/cgi-bin/
    Alias /images/ /usr/home/joe/images/
    ErrorLog /usr/home/joe/log/error_log-joe.domain.com8080
    CustomLog /usr/home/joe/log/access_log-joe.domain.com8080 common
</VirtualHost> 
<Directory /usr/home/joe/www>
	Options Indexes FollowSymLinks Includes ExecCGI
	Order allow,deny
	Allow from all
</Directory>

<VirtualHost 172.16.17.92:80>
	# Configuration for http://sally.domain.com #
    ServerName sally.domain.com
    ServerAdmin webmaster@sally.domain.com
    DocumentRoot /usr/home/sally/www/
    ScriptAlias /cgi-bin/ /usr/home/sally/cgi-bin/
    Alias /images/ /usr/home/sally/images/
    ErrorLog /usr/home/sally/log/error_log-sally.domain.com
    CustomLog /usr/home/sally/log/access_log-sally.domain.com common
</VirtualHost> 
<Directory /usr/home/sally/www>
	Options Indexes FollowSymLinks Includes ExecCGI
	Order allow,deny
	Allow from all
</Directory>

<VirtualHost 172.16.17.92:8080>
	# Configuration for http://sally.domain.com:8080 #
    ServerName sally.domain.com
    ServerAdmin webmaster@sally.domain.com
    DocumentRoot /usr/home/sally/www8080/
    ScriptAlias /cgi-bin/ /usr/home/sally/cgi-bin/
    Alias /images/ /usr/home/sally/images/
    ErrorLog /usr/home/sally/log/error_log-sally.domain.com8080
    CustomLog /usr/home/sally/log/access_log-sally.domain.com8080 common
</VirtualHost> 
<Directory /usr/home/sally/www>
	Options Indexes FollowSymLinks Includes ExecCGI
	Order allow,deny
	Allow from all
</Directory>