| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> |
| <html> |
| <head> |
| <title>Apache IP-based Virtual Host Support</title> |
| </head> |
| |
| <!-- Background white, links blue (unvisited), navy (visited), red (active) --> |
| <BODY |
| BGCOLOR="#FFFFFF" |
| TEXT="#000000" |
| LINK="#0000FF" |
| VLINK="#000080" |
| ALINK="#FF0000" |
| > |
| <!--#include virtual="header.html" --> |
| <h1 ALIGN="CENTER">Apache IP-based Virtual Host Support</h1> |
| |
| <strong>See also:</strong> |
| <a href="name-based.html">Name-based Virtual Hosts Support</a> |
| |
| <HR> |
| |
| <h2>System requirements</h2> |
| As the term <cite>IP-based</cite> indicates, the server <strong>must have a |
| different IP address for each IP-based virtual host</strong>. |
| This can be achieved by the machine having several physical network connections, |
| or by use of virtual interfaces which are supported by most modern |
| operating systems (see system documentation for details). |
| |
| <h2>How to set up Apache</h2> |
| There are two ways of configuring apache to support multiple hosts. |
| Either by running a separate httpd daemon for each hostname, or by running a |
| single daemon which supports all the virtual hosts. |
| <p> |
| Use multiple daemons when: |
| <ul> |
| <li>The different virtual hosts need very different httpd configurations, such |
| as different values for: <A HREF="../mod/core.html#servertype">ServerType</A>, |
| <A HREF="../mod/core.html#user">User</A>, |
| <A HREF="../mod/core.html#group">Group</A>, |
| <A HREF="../mod/mod_mime.html#typesconfig">TypesConfig</A> or |
| <A HREF="../mod/core.html#serverroot">ServerRoot</A>. |
| <li>The machine does not process a very high request rate. |
| </ul> |
| Use a single daemon when: |
| <ul> |
| <li>Sharing of the httpd configuration between virtual hosts is acceptable. |
| <li>The machine services a large number of requests, and so the performance |
| loss in running separate daemons may be significant. |
| </ul> |
| |
| <h2>Setting up multiple daemons</h2> |
| Create a separate httpd installation for each virtual host. |
| For each installation, use the |
| <A HREF="../mod/core.html#listen">Listen</A> directive in the configuration |
| file to select which IP address (or virtual host) that daemon services. |
| e.g. |
| <pre> |
| Listen www.smallco.com:80 |
| </pre> |
| It is recommended that you use an IP address instead of a hostname |
| (see <A HREF="../dns-caveats.html">DNS page</A>). |
| |
| <h2>Setting up a single daemon with virtual hosts</h2> |
| For this case, a single httpd will service requests for the main server |
| and all the virtual hosts. |
| The <A HREF="../mod/core.html#virtualhost">VirtualHost</A> directive in the |
| configuration file is used to set the values of |
| <A HREF="../mod/core.html#serveradmin">ServerAdmin</A>, |
| <A HREF="../mod/core.html#servername">ServerName</A>, |
| <A HREF="../mod/core.html#documentroot">DocumentRoot</A>, |
| <A HREF="../mod/core.html#errorlog">ErrorLog</A> and |
| <A HREF="../mod/mod_log_config.html#transferlog">TransferLog</A> or |
| <A HREF="../mod/mod_log_config.html#customlog">CustomLog</A> |
| configuration directives to different values for each virtual host. |
| e.g. |
| <pre> |
| <VirtualHost www.smallco.com> |
| ServerAdmin webmaster@mail.smallco.com |
| DocumentRoot /groups/smallco/www |
| ServerName www.smallco.com |
| ErrorLog /groups/smallco/logs/error_log |
| TransferLog /groups/smallco/logs/access_log |
| </VirtualHost> |
| |
| <VirtualHost www.baygroup.org> |
| ServerAdmin webmaster@mail.baygroup.org |
| DocumentRoot /groups/baygroup/www |
| ServerName www.baygroup.org |
| ErrorLog /groups/baygroup/logs/error_log |
| TransferLog /groups/baygroup/logs/access_log |
| </VirtualHost> |
| </pre> |
| |
| It is recommended that you use an IP address instead of a hostname |
| (see <A HREF="../dns-caveats.html">DNS page</A>). |
| |
| <P> |
| |
| Almost <strong>any</strong> configuration directive can be put |
| in the VirtualHost directive, with the exception of |
| <A HREF="../mod/core.html#servertype">ServerType</A>, |
| <A HREF="../mod/core.html#startservers">StartServers</A>, |
| <A HREF="../mod/core.html#maxspareservers">MaxSpareServers</A>, |
| <A HREF="../mod/core.html#minspareservers">MinSpareServers</A>, |
| <A HREF="../mod/core.html#maxrequestsperchild">MaxRequestsPerChild</A>, |
| <A HREF="../mod/core.html#bindaddress">BindAddress</A>, |
| <A HREF="../mod/core.html#listen">Listen</A>, |
| <A HREF="../mod/core.html#pidfile">PidFile</A>, |
| <A HREF="../mod/mod_mime.html#typesconfig">TypesConfig</A>, |
| <A HREF="../mod/core.html#serverroot">ServerRoot</A> and |
| <A HREF="../mod/core.html#namevirtualhost">NameVirtualHost</A>. |
| <P> |
| <A HREF="../mod/core.html#user">User</A> and |
| <A HREF="../mod/core.html#group">Group</A> maybe used inside a VirtualHost |
| directive if the <A HREF="../suexec.html">suEXEC wrapper</A> is used. |
| <P> |
| |
| <EM>SECURITY:</EM> When specifying where to write log files, be aware |
| of some security risks which are present if anyone other than the |
| user that starts Apache has write access to the directory where they |
| are written. See the <A HREF="../misc/security_tips.html">security |
| tips</A> document for details. |
| </P> |
| |
| <!--#include virtual="footer.html" --> |
| </body> |
| </html> |
| |