Re: Determining whether 'NameVirtualHost' has been previously called

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 05/02/2013 12:35 PM, John Nichel wrote:
Hi all,

   I'm setting a new web server that will handle multiple 'satellite' web
sites for my place of employment.  These sites currently exist on an
Apache 1.3 server and the previous admin configured them all in the main
httpd.conf file.  I want to make this easier to maintain, so I am setting
up a config file for each virtual host in /etc/httpd/conf.d (ie
satsite1.conf, satsite2.conf, etc.)  I'm trying to find a way to determine
if "NameVirtualHost 1.2.3.4:80" has already been called in a previously
loaded conf file.  Looking through the docs, I wasn't able to find what I
was looking for in the virtual hosts section, and was hoping someone here
had a suggestion.  I could just define all the IP's that handle the vhosts
in the main config file, but, if for whatever reason, one of those IP
addresses doesn't currently have a vhost assigned to it, I get the warning
" NameVirtualHost 1.2.3.4:80 has no VirtualHosts".  Not an error, I know,
but my OCD doesn't like it.  :)  I thank you in advance for any advice you
may have.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx



John,

Put the 'NameVirtualHost' directive in the main config file, you only need it once and you'll know it's been called (it's either/or really, you can't use Name based and IP based virtualhosts at the same time). Now for any request not matching one of your virtualhosts (NameVirtualHosts matched against the ServerName and ServerAlias directives as defined inside each virtual host) Apache will default to the virtualhost that was defined (meaning processed first from the config files), so make the first one a 'dummy', 'site map' or the main site.

For example (from my main config apache2.conf for 2.2, yours would be httpd.conf) I have:

  # following file has 'Listen 80' directive
  Include /etc/apache2/ports.conf
  # for you, 'Listen 80' in httpd.conf

  # this tells apache to listen on all interfaces
  NameVirtualHost *

# Include the virtual host configurations (/etc/apache2/sites-enabled/vhosts.conf):
  Include /etc/apache2/sites-enabled/

  which contains entries such as:

  # First VirtualHost is default

#default
<VirtualHost *>
   ServerAdmin <admin-email-address>
   ServerName example.com
   ServerAlias www.example.com
DocumentRoot "/var/www/default" --------------->(change this to point to where you want mis-directed requests to go)
   DirectoryIndex index.php index.htm

   ErrorLog /var/log/apache2/default-error.log
   CustomLog /var/log/apache2/default-access.log common

   ErrorDocument 400 "Quite simply, a Bad Request..."
ErrorDocument 404 "I'm really not sure what you're looking for but, it's not here..."

   <Location /server-status>
      SetHandler server-status
      Order deny,allow
      Deny from all
      Allow from 127.0.0.1
      Allow from localhost
   </Location>
</VirtualHost>

#site 1
<VirtualHost *>
   ServerAdmin <admin-email-address>
   ServerName example.com ---------------->(replace this with site 1)
   ServerAlias www.example.com ----------->(replace this with site 1)
   DocumentRoot "/var/www/site1"
   DirectoryIndex index.php index.htm

   ErrorLog /var/log/apache2/site1-error.log
   CustomLog /var/log/apache2/site1-access.log common

   ErrorDocument 400 "Quite simply, a Bad Request..."
ErrorDocument 404 "I'm really not sure what you're looking for but, it's not here..."

   <Location /server-status>
      SetHandler server-status
      Order deny,allow
      Deny from all
      Allow from 127.0.0.1
      Allow from localhost
   </Location>
</VirtualHost>

...site2, site3, site4 and so on.

--
Norman Registered Linux user #461062 -Have you been to www.apache.org yet?-


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx





[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux