You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by pq...@apache.org on 2005/06/16 21:05:59 UTC
svn commit: r190982 [1/2] - in /httpd/httpd/trunk/docs/manual/mod:
core.html.en core.xml directives.html.en mpm_common.html.en mpm_common.xml
quickreference.html.en
Author: pquerna
Date: Thu Jun 16 12:05:58 2005
New Revision: 190982
URL: http://svn.apache.org/viewcvs?rev=190982&view=rev
Log:
- Add documentation on the new AcceptFilter directive.
- Update Listen with the optional protocol arg.
Modified:
httpd/httpd/trunk/docs/manual/mod/core.html.en
httpd/httpd/trunk/docs/manual/mod/core.xml
httpd/httpd/trunk/docs/manual/mod/directives.html.en
httpd/httpd/trunk/docs/manual/mod/mpm_common.html.en
httpd/httpd/trunk/docs/manual/mod/mpm_common.xml
httpd/httpd/trunk/docs/manual/mod/quickreference.html.en
Modified: httpd/httpd/trunk/docs/manual/mod/core.html.en
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/docs/manual/mod/core.html.en?rev=190982&r1=190981&r2=190982&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/core.html.en (original)
+++ httpd/httpd/trunk/docs/manual/mod/core.html.en Thu Jun 16 12:05:58 2005
@@ -31,6 +31,7 @@
</div>
<div id="quickview"><h3 class="directives">Directives</h3>
<ul id="toc">
+<li><img alt="" src="../images/down.gif" /> <a href="#acceptfilter">AcceptFilter</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#acceptpathinfo">AcceptPathInfo</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#accessfilename">AccessFileName</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#adddefaultcharset">AddDefaultCharset</a></li>
@@ -95,6 +96,58 @@
</ul>
</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AcceptFilter" id="AcceptFilter">AcceptFilter</a> <a name="acceptfilter" id="acceptfilter">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configures optimizations for a Protocol's Listener Sockets</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AcceptFilter <var>protocol</var> <var>accept_filter</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.1.5 and later</td></tr>
+</table>
+ <p>This directive enables operating system specific optimizations for a
+ listening socket by the Protocol type. The basic premise is for the
+ kernel to not send a socket to the server process until either data
+ is received or an entire HTTP Request is buffered. Only
+ <a href="http://www.freebsd.org/cgi/man.cgi?query=accept_filter&sektion=9">
+ FreeBSD's Accept Filters</a> and Linux's more primitive
+ <code>TCP_DEFER_ACCEPT</code> are currently supported.</p>
+
+ <p>The default values on FreeBSD are:</p>
+ <div class="example"><p><code>
+ AcceptFilter http httpready <br />
+ AcceptFilter https dataready
+ </code></p></div>
+
+ <p>The <code>httpready</code> accept filter buffers entire HTTP requests at
+ the kernel level. Once an entire request is recieved, the kernel then
+ sends it to the server. See the
+ <a href="http://www.freebsd.org/cgi/man.cgi?query=accf_http&sektion=9">
+ accf_http(9)</a> man page for more details. Since HTTPS requests are
+ encrypted only the <a href="http://www.freebsd.org/cgi/man.cgi?query=accf_data&sektion=9">
+ accf_data(9)</a> filter is used.</p>
+
+ <p>The default values on Linux are:</p>
+ <div class="example"><p><code>
+ AcceptFilter http data <br />
+ AcceptFilter https data
+ </code></p></div>
+
+ <p>Linux's <code>TCP_DEFER_ACCEPT</code> does not support buffering http
+ requests. Any value besides <code>none</code> will enable
+ <code>TCP_DEFER_ACCEPT</code> on that listener. For more details
+ see the Linux
+ <a href="http://homepages.cwi.nl/~aeb/linux/man2html/man7/tcp.7.html">
+ tcp(7)</a> man page.</p>
+
+ <p>Using <code>none</code> for an argument will disable any accept filters
+ for that protocol. This is useful for protocols that require a server
+ send data first, such as <code>nntp</code>:</p>
+ <div class="example"><p><code>AcceptFilter nttp none</code></p></div>
+
+
+</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AcceptPathInfo" id="AcceptPathInfo">AcceptPathInfo</a> <a name="acceptpathinfo" id="acceptpathinfo">Directive</a></h2>
<table class="directive">
Modified: httpd/httpd/trunk/docs/manual/mod/core.xml
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/docs/manual/mod/core.xml?rev=190982&r1=190981&r2=190982&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/core.xml (original)
+++ httpd/httpd/trunk/docs/manual/mod/core.xml Thu Jun 16 12:05:58 2005
@@ -28,6 +28,57 @@
<status>Core</status>
<directivesynopsis>
+<name>AcceptFilter</name>
+<description>Configures optimizations for a Protocol's Listener Sockets</description>
+<syntax>AcceptFilter <var>protocol</var> <var>accept_filter</var></syntax>
+<contextlist><context>server config</context></contextlist>
+<compatibility>Available in Apache 2.1.5 and later</compatibility>
+
+<usage>
+ <p>This directive enables operating system specific optimizations for a
+ listening socket by the Protocol type. The basic premise is for the
+ kernel to not send a socket to the server process until either data
+ is received or an entire HTTP Request is buffered. Only
+ <a href="http://www.freebsd.org/cgi/man.cgi?query=accept_filter&sektion=9">
+ FreeBSD's Accept Filters</a> and Linux's more primitive
+ <code>TCP_DEFER_ACCEPT</code> are currently supported.</p>
+
+ <p>The default values on FreeBSD are:</p>
+ <example>
+ AcceptFilter http httpready <br/>
+ AcceptFilter https dataready
+ </example>
+
+ <p>The <code>httpready</code> accept filter buffers entire HTTP requests at
+ the kernel level. Once an entire request is recieved, the kernel then
+ sends it to the server. See the
+ <a href="http://www.freebsd.org/cgi/man.cgi?query=accf_http&sektion=9">
+ accf_http(9)</a> man page for more details. Since HTTPS requests are
+ encrypted only the <a href="http://www.freebsd.org/cgi/man.cgi?query=accf_data&sektion=9">
+ accf_data(9)</a> filter is used.</p>
+
+ <p>The default values on Linux are:</p>
+ <example>
+ AcceptFilter http data <br/>
+ AcceptFilter https data
+ </example>
+
+ <p>Linux's <code>TCP_DEFER_ACCEPT</code> does not support buffering http
+ requests. Any value besides <code>none</code> will enable
+ <code>TCP_DEFER_ACCEPT</code> on that listener. For more details
+ see the Linux
+ <a href="http://homepages.cwi.nl/~aeb/linux/man2html/man7/tcp.7.html">
+ tcp(7)</a> man page.</p>
+
+ <p>Using <code>none</code> for an argument will disable any accept filters
+ for that protocol. This is useful for protocols that require a server
+ send data first, such as <code>nntp</code>:</p>
+ <example>AcceptFilter nttp none</example>
+
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
<name>AcceptPathInfo</name>
<description>Resources accept trailing pathname information</description>
<syntax>AcceptPathInfo On|Off|Default</syntax>
Modified: httpd/httpd/trunk/docs/manual/mod/directives.html.en
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/docs/manual/mod/directives.html.en?rev=190982&r1=190981&r2=190982&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/directives.html.en (original)
+++ httpd/httpd/trunk/docs/manual/mod/directives.html.en Thu Jun 16 12:05:58 2005
@@ -41,7 +41,8 @@
<p class="letters"><a href="#A"> A </a> | <a href="#B"> B </a> | <a href="#C"> C </a> | <a href="#D"> D </a> | <a href="#E"> E </a> | <a href="#F"> F </a> | <a href="#G"> G </a> | <a href="#H"> H </a> | <a href="#I"> I </a> | <a href="#K"> K </a> | <a href="#L"> L </a> | <a href="#M"> M </a> | <a href="#N"> N </a> | <a href="#O"> O </a> | <a href="#P"> P </a> | <a href="#R"> R </a> | <a href="#S"> S </a> | <a href="#T"> T </a> | <a href="#U"> U </a> | <a href="#V"> V </a> | <a href="#W"> W </a> | <a href="#X"> X </a></p>
</div>
<div id="directive-list"><ul>
-<li><a href="mpm_common.html#acceptmutex" id="A" name="A">AcceptMutex</a></li>
+<li><a href="core.html#acceptfilter" id="A" name="A">AcceptFilter</a></li>
+<li><a href="mpm_common.html#acceptmutex">AcceptMutex</a></li>
<li><a href="core.html#acceptpathinfo">AcceptPathInfo</a></li>
<li><a href="core.html#accessfilename">AccessFileName</a></li>
<li><a href="mod_actions.html#action">Action</a></li>
Modified: httpd/httpd/trunk/docs/manual/mod/mpm_common.html.en
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/docs/manual/mod/mpm_common.html.en?rev=190982&r1=190981&r2=190982&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/mpm_common.html.en (original)
+++ httpd/httpd/trunk/docs/manual/mod/mpm_common.html.en Thu Jun 16 12:05:58 2005
@@ -229,11 +229,12 @@
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>IP addresses and ports that the server
listens to</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Listen [<var>IP-address</var>:]<var>portnumber</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Listen [<var>IP-address</var>:]<var>portnumber</var> [<var>protocol</var>]</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>MPM</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/beos.html">beos</a></code>, <code class="module"><a href="../mod/leader.html">leader</a></code>, <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code>, <code class="module"><a href="../mod/perchild.html">perchild</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/threadpool.html">threadpool</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code></td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Required directive since Apache 2.0</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/beos.html">beos</a></code>, <code class="module"><a href="../mod/leader.html">leader</a></code>, <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code>, <code class="module"><a href="../mod/perchild.html">perchild</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/threadpool.html">threadpool</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/event.html">event</a></code></td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Required directive since Apache 2.0<br />
+The <var>protocol</var> argument was added in 2.1.5</td></tr>
</table>
<p>The <code class="directive">Listen</code> directive instructs Apache to
listen to only specific IP addresses or ports; by default it
@@ -276,11 +277,26 @@
Listen [fe80::a00:20ff:fea7:ccea]:80
</code></p></div>
+ <p>The optional <var>protocol</var> argument is not required for most
+ configurations. If not specified, <code>https</code> is the default for
+ port 443 and <code>http</code> the default for all other ports. The
+ protocol is used to determine which module should handle a request, and
+ to apply protocol specific optimizations with the
+ <code class="directive"><a href="../mod/core.html#acceptfilter">AcceptFilter</a></code> directive.</p>
+
+ <p>You only need to set the protocol if you are running on non-standard
+ ports. For example, running an <code>https</code> site on port 443:</p>
+
+ <div class="example"><p><code>
+ Listen 192.170.2.1:8443 https
+ </code></p></div>
+
<div class="note"><h3>Error condition</h3>
Multiple <code class="directive">Listen</code> directives for the same ip
address and port will result in an <code>Address already in use</code>
error message.
</div>
+
<h3>See also</h3>
<ul>
Modified: httpd/httpd/trunk/docs/manual/mod/mpm_common.xml
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/docs/manual/mod/mpm_common.xml?rev=190982&r1=190981&r2=190982&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/mpm_common.xml (original)
+++ httpd/httpd/trunk/docs/manual/mod/mpm_common.xml Thu Jun 16 12:05:58 2005
@@ -258,14 +258,16 @@
<name>Listen</name>
<description>IP addresses and ports that the server
listens to</description>
-<syntax>Listen [<var>IP-address</var>:]<var>portnumber</var></syntax>
+<syntax>Listen [<var>IP-address</var>:]<var>portnumber</var> [<var>protocol</var>]</syntax>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>leader</module>
<module>mpm_netware</module><module>mpm_winnt</module>
<module>mpmt_os2</module><module>perchild</module>
<module>prefork</module><module>threadpool</module><module>worker</module>
+<module>event</module>
</modulelist>
-<compatibility>Required directive since Apache 2.0</compatibility>
+<compatibility>Required directive since Apache 2.0<br/>
+The <var>protocol</var> argument was added in 2.1.5</compatibility>
<usage>
<p>The <directive>Listen</directive> directive instructs Apache to
@@ -309,11 +311,26 @@
Listen [fe80::a00:20ff:fea7:ccea]:80
</example>
+ <p>The optional <var>protocol</var> argument is not required for most
+ configurations. If not specified, <code>https</code> is the default for
+ port 443 and <code>http</code> the default for all other ports. The
+ protocol is used to determine which module should handle a request, and
+ to apply protocol specific optimizations with the
+ <directive module="core">AcceptFilter</directive> directive.</p>
+
+ <p>You only need to set the protocol if you are running on non-standard
+ ports. For example, running an <code>https</code> site on port 443:</p>
+
+ <example>
+ Listen 192.170.2.1:8443 https
+ </example>
+
<note><title>Error condition</title>
Multiple <directive>Listen</directive> directives for the same ip
address and port will result in an <code>Address already in use</code>
error message.
</note>
+
</usage>
<seealso><a href="../dns-caveats.html">DNS Issues</a></seealso>
<seealso><a href="../bind.html">Setting which addresses and ports Apache