diff options
Diffstat (limited to 'docs/manual/vhosts/details.html')
-rw-r--r-- | docs/manual/vhosts/details.html | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/docs/manual/vhosts/details.html b/docs/manual/vhosts/details.html index 97ac6d824e..b7baf591d3 100644 --- a/docs/manual/vhosts/details.html +++ b/docs/manual/vhosts/details.html @@ -14,7 +14,8 @@ <!--#include virtual="header.html" --> <H1 ALIGN="CENTER">An In-Depth Discussion of Virtual Host Matching</H1> -<P>The virtual host code was completely rewritten in <STRONG>Apache 1.3</STRONG>. +<P>The virtual host code was completely rewritten in +<STRONG>Apache 1.3</STRONG>. This document attempts to explain exactly what Apache does when deciding what virtual host to serve a hit from. With the help of the new <A HREF="../mod/core.html#namevirtualhost"><SAMP>NameVirtualHost</SAMP></A> @@ -120,9 +121,9 @@ first name in its <CODE>VirtualHost</CODE> directive. <P>The complete list of names in the <CODE>VirtualHost</CODE> directive are treated just like a <CODE>ServerAlias</CODE> (but are not overridden by any -<CODE>ServerAlias</CODE> statement) if all names resolve to the same address set. -Note that subsequent <CODE>Port</CODE> statements for this vhost will not affect -the ports assigned in the address set. +<CODE>ServerAlias</CODE> statement) if all names resolve to the same address +set. Note that subsequent <CODE>Port</CODE> statements for this vhost will not +affect the ports assigned in the address set. <P>During initialization a list for each IP address is generated an inserted into an hash table. If the IP address is @@ -144,9 +145,11 @@ the table is optimized for IP addresses which vary in the last octet. <A HREF="../mod/core.html#resourceconfig"><CODE>ResourceConfig</CODE></A>, <A HREF="../mod/core.html#accessconfig"><CODE>AccessConfig</CODE></A>, <A HREF="../mod/core.html#timeout"><CODE>Timeout</CODE></A>, - <A HREF="../mod/core.html#keepalivetimeout"><CODE>KeepAliveTimeout</CODE></A>, + <A HREF="../mod/core.html#keepalivetimeout" + ><CODE>KeepAliveTimeout</CODE></A>, <A HREF="../mod/core.html#keepalive"><CODE>KeepAlive</CODE></A>, - <A HREF="../mod/core.html#maxkeepaliverequests"><CODE>MaxKeepAliveRequests</CODE></A>, + <A HREF="../mod/core.html#maxkeepaliverequests" + ><CODE>MaxKeepAliveRequests</CODE></A>, or <A HREF="../mod/core.html#sendbuffersize"><CODE>SendBufferSize</CODE></A> directive then the respective value is @@ -219,17 +222,17 @@ file. <P>The first vhost on this list (the first vhost in the config file with the specified IP address) has the highest priority and catches any request to an unknown server name or a request without a <CODE>Host:</CODE> -header. +header field. -<P>If the client provided a <CODE>Host:</CODE> header the list is +<P>If the client provided a <CODE>Host:</CODE> header field the list is searched for a matching vhost and the first hit on a <CODE>ServerName</CODE> or <CODE>ServerAlias</CODE> is taken and the request is served from -that vhost. A <CODE>Host:</CODE> header can contain a port number, but +that vhost. A <CODE>Host:</CODE> header field can contain a port number, but Apache always matches against the real port to which the client sent the request. <P>If the client submitted a HTTP/1.0 request without <CODE>Host:</CODE> -header we don't know to what server the client tried to connect and +header field we don't know to what server the client tried to connect and any existing <CODE>ServerPath</CODE> is matched against the URI from the request. The first matching path on the list is used and the request is served from that vhost. @@ -282,7 +285,7 @@ taken to be a proxy request. <P> <LI>For security reasons the port number given in a <CODE>Host:</CODE> - header is never used during the matching process. Apache always + header field is never used during the matching process. Apache always uses the real port to which the client sent the request. <P> @@ -290,7 +293,7 @@ taken to be a proxy request. another <CODE>ServerPath</CODE> directive that appears later in the configuration file, then the former will always be matched and the latter will never be matched. (That is assuming that no - Host header was available to disambiguate the two.) + <CODE>Host:</CODE> header field was available to disambiguate the two.) <P> <LI>If two IP-based vhosts have an address in common, the vhost appearing @@ -312,13 +315,13 @@ taken to be a proxy request. and port number to which the client connected is unspecified and does not match any other vhost (including a <CODE>_default_</CODE> vhost). In other words the main_server only catches a request for an - unspecified address/port combination (unless there is a <CODE>_default_</CODE> - vhost which matches that port). + unspecified address/port combination (unless there is a + <CODE>_default_</CODE> vhost which matches that port). <P> <LI>A <CODE>_default_</CODE> vhost or the main_server is <EM>never</EM> matched for a request with an unknown or missing <CODE>Host:</CODE> header - if the client connected to an address (and port) which is used + field if the client connected to an address (and port) which is used for name-based vhosts, e.g. in a <CODE>NameVirtualHost</CODE> directive. <P> |