| <?xml version="1.0"?> |
| <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> |
| <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?> |
| <!-- $LastChangedRevision$ --> |
| |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <modulesynopsis metafile="mod_buffer.xml.meta"> |
| |
| <name>mod_buffer</name> |
| <description>Support for request buffering</description> |
| <status>Extension</status> |
| <sourcefile>mod_buffer.c</sourcefile> |
| <identifier>buffer_module</identifier> |
| <compatibility>Available in Apache 2.3 and later</compatibility> |
| |
| <summary> |
| <p>This module provides the ability to buffer the input and output |
| filter stacks.</p> |
| |
| <p>Under certain circumstances, content generators might create |
| content in small chunks. In order to promote memory reuse, in |
| memory chunks are always 8k in size, regardless of the size of the |
| chunk itself. When many small chunks are generated by a request, |
| this can create a large memory footprint while the request is |
| being processed, and an unnecessarily large amount of data on the |
| wire. The addition of a buffer collapses the response into the |
| fewest chunks possible.</p> |
| |
| <p>When httpd is used in front of an expensive content generator, |
| buffering the response may allow the backend to complete |
| processing and release resources sooner, depending on how the |
| backend is designed.</p> |
| |
| <p>The buffer filter may be added to either the input or the |
| output filter stacks, as appropriate, using the |
| <directive module="core">SetInputFilter</directive>, |
| <directive module="core">SetOutputFilter</directive>, |
| <directive module="mod_mime">AddOutputFilter</directive> or |
| <directive module="mod_filter">AddOutputFilterByType</directive> directives.</p> |
| |
| <example><title>Using buffer with mod_include</title> |
| <highlight language="config"> |
| AddOutputFilterByType INCLUDES;BUFFER text/html |
| </highlight> |
| </example> |
| |
| <note type="warning">The buffer filters read the request/response into |
| RAM and then repack the request/response into the fewest memory |
| buckets possible, at the cost of CPU time. When the request/response |
| is already efficiently packed, buffering the request/response could |
| cause the request/response to be slower than not using a buffer at |
| all. These filters should be used with care, and only where |
| necessary.</note> |
| |
| </summary> |
| <seealso><a href="../filter.html">Filters</a></seealso> |
| |
| <directivesynopsis> |
| <name>BufferSize</name> |
| <description>Maximum size in bytes to buffer by the buffer filter</description> |
| <syntax>BufferSize integer</syntax> |
| <default>BufferSize 131072</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context> |
| <context>directory</context> |
| <context>.htaccess</context> |
| </contextlist> |
| |
| <usage> |
| <p>The <directive module="mod_buffer">BufferSize</directive> |
| directive specifies the amount of data in bytes that will be |
| buffered before being read from or written to each request. |
| The default is 128 kilobytes.</p> |
| </usage> |
| </directivesynopsis> |
| |
| </modulesynopsis> |