ip-based.html.en revision fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<?xml version="1.0" encoding="ISO-8859-1"?>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess This file is generated from xml source: DO NOT EDIT
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess --><title>Apache IP-based Virtual Host Support - Apache HTTP Server</title><link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /><link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /><link href="/style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link href="/images/favicon.ico" rel="shortcut icon" /></head><body id="manual-page"><div id="page-header"><p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p><p class="apache">Apache HTTP Server Version 2.0</p><img alt="" src="/images/feather.gif" /></div><div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div><div id="path"><a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs-project/">Documentation</a> &gt; <a href="../">Version 2.0</a></div><div id="page-content"><div id="preamble"><h1>Apache IP-based Virtual Host Support</h1></div><div id="quickview"><ul id="toc"><li><img alt="" src="/images/down.gif" /> <a href="#requirements">System requirements</a></li><li><img alt="" src="/images/down.gif" /> <a href="#howto">How to set up Apache</a></li><li><img alt="" src="/images/down.gif" /> <a href="#multiple">Setting up multiple daemons</a></li><li><img alt="" src="/images/down.gif" /> <a href="#single">Setting up a single daemon
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess with virtual hosts</a></li></ul><h3>See also</h3><ul class="seealso"><li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<a href="name-based.html">Name-based Virtual Hosts Support</a>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess</li></ul></div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div><div class="section"><h2><a name="requirements" id="requirements">System requirements</a></h2>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>As the term <cite>IP-based</cite> indicates, the server
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <strong>must have a different IP address for each IP-based
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess virtual host</strong>. This can be achieved by the machine
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess having several physical network connections, or by use of
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess virtual interfaces which are supported by most modern operating
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess systems (see system documentation for details, these are
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess frequently called "ip aliases", and the "ifconfig" command is
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess most commonly used to set them up).</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div><div class="section"><h2><a name="howto" id="howto">How to set up Apache</a></h2>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>There are two ways of configuring apache to support multiple
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess hosts. Either by running a separate httpd daemon for each
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess hostname, or by running a single daemon which supports all the
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess virtual hosts.</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>Use multiple daemons when:</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <ul>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <li>There are security partitioning issues, such as company1
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess does not want anyone at company2 to be able to read their
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess data except via the web. In this case you would need two
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess daemons, each running with different <code class="directive"><a href="/mod/mpm_common.html#user">User</a></code>, <code class="directive"><a href="/mod/mpm_common.html#group">Group</a></code>, <code class="directive"><a href="/mod/mpm_common.html#listen">Listen</a></code>, and <code class="directive"><a href="/mod/core.html#serverroot">ServerRoot</a></code> settings.</li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <li>You can afford the memory and <a href="/misc/descriptors.html">file descriptor
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess requirements</a> of listening to every IP alias on the
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess machine. It's only possible to <code class="directive"><a href="/mod/mpm_common.html#listen">Listen</a></code> to the "wildcard"
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess address, or to specific addresses. So if you have a need to
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess listen to a specific address for whatever reason, then you
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess will need to listen to all specific addresses. (Although one
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess httpd could listen to N-1 of the addresses, and another could
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess listen to the remaining address.)</li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess </ul>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>Use a single daemon when:</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <ul>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <li>Sharing of the httpd configuration between virtual hosts
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess is acceptable.</li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <li>The machine services a large number of requests, and so
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess the performance loss in running separate daemons may be
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess significant.</li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess </ul>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div><div class="section"><h2><a name="multiple" id="multiple">Setting up multiple daemons</a></h2>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>Create a separate httpd installation for each virtual host. For
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess each installation, use the <code class="directive"><a href="/mod/mpm_common.html#listen">Listen</a></code> directive in the
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess configuration file to select which IP address (or virtual host)
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess that daemon services. e.g.</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<div class="example"><pre>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess Listen www.smallco.com:80
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess</pre></div>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>It is recommended that you use an IP address instead of a
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess hostname (see <a href="/dns-caveats.html">DNS caveats</a>).</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div><div class="section"><h2><a name="single" id="single">Setting up a single daemon
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess with virtual hosts</a></h2>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>For this case, a single httpd will service requests for the
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess main server and all the virtual hosts. The <code class="directive"><a href="/mod/core.html#virtualhost">VirtualHost</a></code> directive
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess in the configuration file is used to set the values of <code class="directive"><a href="/mod/core.html#serveradmin">ServerAdmin</a></code>, <code class="directive"><a href="/mod/core.html#servername">ServerName</a></code>, <code class="directive"><a href="/mod/core.html#documentroot">DocumentRoot</a></code>, <code class="directive"><a href="/mod/core.html#errorlog">ErrorLog</a></code> and <code class="directive"><a href="/mod/mod_log_config.html#transferlog">TransferLog</a></code>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess or <code class="directive"><a href="/mod/mod_log_config.html#customlog">CustomLog</a></code>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess configuration directives to different values for each virtual
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess host. e.g.</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<div class="example"><pre>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess &lt;VirtualHost www.smallco.com&gt;
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess ServerAdmin webmaster@mail.smallco.com
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess DocumentRoot /groups/smallco/www
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess ServerName www.smallco.com
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess ErrorLog /groups/smallco/logs/error_log
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess TransferLog /groups/smallco/logs/access_log
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess &lt;/VirtualHost&gt;
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess &lt;VirtualHost www.baygroup.org&gt;
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess ServerAdmin webmaster@mail.baygroup.org
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess DocumentRoot /groups/baygroup/www
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess ServerName www.baygroup.org
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess ErrorLog /groups/baygroup/logs/error_log
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess TransferLog /groups/baygroup/logs/access_log
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess &lt;/VirtualHost&gt;
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess</pre></div>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>It is recommended that you use an IP address instead of a
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess hostname (see <a href="/dns-caveats.html">DNS caveats</a>).</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>Almost <strong>any</strong> configuration directive can be
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess put in the VirtualHost directive, with the exception of
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess directives that control process creation and a few other
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess directives. To find out if a directive can be used in the
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess VirtualHost directive, check the <a href="/mod/directive-dict.html#Context">Context</a> using the
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <a href="/mod/directives.html">directive index</a>.</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p><code class="directive"><a href="/mod/mpm_common.html#user">User</a></code> and <code class="directive"><a href="/mod/mpm_common.html#group">Group</a></code> may be used inside a
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess VirtualHost directive if the <a href="/suexec.html">suEXEC
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess wrapper</a> is used.</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p><em>SECURITY:</em> When specifying where to write log files,
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess be aware of some security risks which are present if anyone
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess other than the user that starts Apache has write access to the
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess directory where they are written. See the <a href="/misc/security_tips.html">security tips</a> document
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess for details.</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess</div></div><div id="footer"><p class="apache">Maintained by the <a href="http://httpd.apache.org/docs-project/">Apache HTTP Server Documentation Project</a></p><p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p></div></body></html>