Jorey Bump
list at joreybump.com
Mon Feb 27 10:02:27 EST 2006
Scott Chapman wrote: > Why would I want to experiment with a thing like this? I want to be > able to add virtual servers to my site without having to restart Apache > and I want to further centralize things. If this is your only goal, consider using mass virtual hosting, instead: NameVirtualHost *:80 <VirtualHost _default_:80> # default host to catch probes and undefined hosts ServerName server.example.net ServerAdmin admin at example.net DocumentRoot /var/www/vhosts/default # refuse all requests to the default host <Directory /var/www/vhosts/default> Order allow,deny Deny from all </Directory> ErrorDocument 403 "Access to this location is forbidden. </VirtualHost> <VirtualHost *:80> ServerAdmin admin at example.net # mass virtual hosting # apache will look for DocumentRoot using name of requested host (%0) VirtualDocumentRoot /var/www/vhosts/%0/site # reconstruct self-referential URLs using hostname sent by client UseCanonicalName Off </VirtualHost> The above configuration would serve requests for http://sub.example.com from: /var/www/vhosts/sub.example.com/site The only configuration necessary is to set up DNS, create the appropriate directory, and upload the files. There is no need to restart Apache. Hits to the default host are refused in the example, mainly to reduce noise in the logs from worms and other probes. To log all hits to a single file, just put %V at the start of your LogFormat string to indicate the virtual host for the request. The modified common format would look like this in httpd.conf: LogFormat "%V %h %l %u %t \"%r\" %>s %b" vcommon CustomLog /var/log/apache/vcommon_log vcommon
|