From cc40af334e619bb549038238507407866f774f8f Mon Sep 17 00:00:00 2001 From: hongbotian Date: Mon, 30 Nov 2015 01:35:09 -0500 Subject: upload apache JIRA: BOTTLENECK-10 Change-Id: I67eae31de6dc824097dfa56ab454ba36fdd23a2c Signed-off-by: hongbotian --- rubbos/app/apache2/manual/mod/mod_deflate.html.en | 356 ++++++++++++++++++++++ 1 file changed, 356 insertions(+) create mode 100644 rubbos/app/apache2/manual/mod/mod_deflate.html.en (limited to 'rubbos/app/apache2/manual/mod/mod_deflate.html.en') diff --git a/rubbos/app/apache2/manual/mod/mod_deflate.html.en b/rubbos/app/apache2/manual/mod/mod_deflate.html.en new file mode 100644 index 00000000..c61f25a9 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_deflate.html.en @@ -0,0 +1,356 @@ + + + +mod_deflate - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_deflate

+
+

Available Languages:  en  | + ja  | + ko 

+
+ + + +
Description:Compress content before it is delivered to the +client
Status:Extension
Module Identifier:deflate_module
Source File:mod_deflate.c
+

Summary

+ +

The mod_deflate module provides + the DEFLATE output filter that allows output from + your server to be compressed before being sent to the client over + the network.

+
+ +
top
+
+

Sample Configurations

+

This is a simple sample configuration for the impatient.

+ +

Compress only a few types

+ AddOutputFilterByType DEFLATE text/html text/plain text/xml +

+ +

The following configuration, while resulting in more compressed content, + is also much more complicated. Do not use this unless you fully understand + all the configuration details.

+ +

Compress everything except images

+ <Location />
+ + # Insert filter
+ SetOutputFilter DEFLATE
+
+ # Netscape 4.x has some problems...
+ BrowserMatch ^Mozilla/4 gzip-only-text/html
+
+ # Netscape 4.06-4.08 have some more problems
+ BrowserMatch ^Mozilla/4\.0[678] no-gzip
+
+ # MSIE masquerades as Netscape, but it is fine
+ # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
+
+ # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
+ # the above regex won't work. You can use the following
+ # workaround to get the desired effect:
+ BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
+
+ # Don't compress images
+ SetEnvIfNoCase Request_URI \
+ + \.(?:gif|jpe?g|png)$ no-gzip dont-vary
+
+
+ # Make sure proxies don't deliver the wrong content
+ Header append Vary User-Agent env=!dont-vary
+
+ </Location> +

+ +
top
+
+

Enabling Compression

+ +

Output Compression

+

Compression is implemented by the DEFLATE + filter. The following directive + will enable compression for documents in the container where it + is placed:

+ +

+ SetOutputFilter DEFLATE +

+ +

Some popular browsers cannot handle compression of all content + so you may want to set the gzip-only-text/html note to + 1 to only allow html files to be compressed (see + below). If you set this to anything but 1 it + will be ignored.

+ +

If you want to restrict the compression to particular MIME types + in general, you may use the AddOutputFilterByType directive. Here is an example of + enabling compression only for the html files of the Apache + documentation:

+ +

+ <Directory "/your-server-root/manual">
+ + AddOutputFilterByType DEFLATE text/html
+
+ </Directory> +

+ +

For browsers that have problems even with compression of all file + types, use the BrowserMatch directive to set the no-gzip + note for that particular browser so that no compression will be + performed. You may combine no-gzip with gzip-only-text/html to get the best results. In that case + the former overrides the latter. Take a look at the following + excerpt from the configuration example + defined in the section above:

+ +

+ BrowserMatch ^Mozilla/4 gzip-only-text/html
+ BrowserMatch ^Mozilla/4\.0[678] no-gzip
+ BrowserMatch \bMSIE !no-gzip !gzip-only-text/html +

+ +

At first we probe for a User-Agent string that + indicates a Netscape Navigator version of 4.x. These versions + cannot handle compression of types other than + text/html. The versions 4.06, 4.07 and 4.08 also + have problems with decompressing html files. Thus, we completely + turn off the deflate filter for them.

+ +

The third BrowserMatch + directive fixes the guessed identity of the user agent, because + the Microsoft Internet Explorer identifies itself also as "Mozilla/4" + but is actually able to handle requested compression. Therefore we + match against the additional string "MSIE" (\b means + "word boundary") in the User-Agent Header and turn off + the restrictions defined before.

+ +

Note

+ The DEFLATE filter is always inserted after RESOURCE + filters like PHP or SSI. It never touches internal subrequests. +
+ + +

Input Decompression

+

The mod_deflate module also provides a filter for + decompressing a gzip compressed request body . In order to activate + this feature you have to insert the DEFLATE filter into + the input filter chain using SetInputFilter or AddInputFilter, for example:

+ +

+ <Location /dav-area>
+ + SetInputFilter DEFLATE
+
+ </Location> +

+ +

Now if a request contains a Content-Encoding: + gzip header, the body will be automatically decompressed. + Few browsers have the ability to gzip request bodies. However, + some special applications actually do support request + compression, for instance some WebDAV clients.

+ +

Note on Content-Length

+

If you evaluate the request body yourself, don't trust + the Content-Length header! + The Content-Length header reflects the length of the + incoming data from the client and not the byte count of + the decompressed data stream.

+
+ +
top
+
+

Dealing with proxy servers

+ +

The mod_deflate module sends a Vary: + Accept-Encoding HTTP response header to alert proxies that + a cached response should be sent only to clients that send the + appropriate Accept-Encoding request header. This + prevents compressed content from being sent to a client that will + not understand it.

+ +

If you use some special exclusions dependent + on, for example, the User-Agent header, you must + manually configure an addition to the Vary header + to alert proxies of the additional restrictions. For example, + in a typical configuration where the addition of the DEFLATE + filter depends on the User-Agent, you should add:

+ +

+ Header append Vary User-Agent +

+ +

If your decision about compression depends on other information + than request headers (e.g. HTTP version), you have to set the + Vary header to the value *. This prevents + compliant proxies from caching entirely.

+ +

Example

+ Header set Vary * +

+
+
top
+

DeflateBufferSize Directive

+ + + + + + + +
Description:Fragment size to be compressed at one time by zlib
Syntax:DeflateBufferSize value
Default:DeflateBufferSize 8096
Context:server config, virtual host
Status:Extension
Module:mod_deflate
+

The DeflateBufferSize directive specifies + the size in bytes of the fragments that zlib should compress at one + time.

+ +
+
top
+

DeflateCompressionLevel Directive

+ + + + + + + + +
Description:How much compression do we apply to the output
Syntax:DeflateCompressionLevel value
Default:Zlib's default
Context:server config, virtual host
Status:Extension
Module:mod_deflate
Compatibility:This directive is available since Apache 2.0.45
+

The DeflateCompressionLevel directive specifies + what level of compression should be used, the higher the value, + the better the compression, but the more CPU time is required to + achieve this.

+

The value must between 1 (less compression) and 9 (more compression).

+ +
+
top
+

DeflateFilterNote Directive

+ + + + + + + +
Description:Places the compression ratio in a note for logging
Syntax:DeflateFilterNote [type] notename
Context:server config, virtual host
Status:Extension
Module:mod_deflate
Compatibility:type is available since Apache 2.0.45
+

The DeflateFilterNote directive + specifies that a note about compression ratios should be attached + to the request. The name of the note is the value specified for + the directive. You can use that note for statistical purposes by + adding the value to your access log.

+ +

Example

+ DeflateFilterNote ratio
+
+ LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate
+ CustomLog logs/deflate_log deflate +

+ +

If you want to extract more accurate values from your logs, you + can use the type argument to specify the type of data + left as note for logging. type can be one of:

+ +
+
Input
+
Store the byte count of the filter's input stream in the note.
+ +
Output
+
Store the byte count of the filter's output stream in the note.
+ +
Ratio
+
Store the compression ratio (output/input * 100) + in the note. This is the default, if the type argument + is omitted.
+
+ +

Thus you may log it this way:

+ +

Accurate Logging

+ DeflateFilterNote Input instream
+ DeflateFilterNote Output outstream
+ DeflateFilterNote Ratio ratio
+
+ LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
+ CustomLog logs/deflate_log deflate +

+ +

See also

+ +
+
top
+

DeflateMemLevel Directive

+ + + + + + + +
Description:How much memory should be used by zlib for compression
Syntax:DeflateMemLevel value
Default:DeflateMemLevel 9
Context:server config, virtual host
Status:Extension
Module:mod_deflate
+

The DeflateMemLevel directive specifies + how much memory should be used by zlib for compression + (a value between 1 and 9).

+ +
+
top
+

DeflateWindowSize Directive

+ + + + + + + +
Description:Zlib compression window size
Syntax:DeflateWindowSize value
Default:DeflateWindowSize 15
Context:server config, virtual host
Status:Extension
Module:mod_deflate
+

The DeflateWindowSize directive specifies the + zlib compression window size (a value between 1 and 15). Generally, the + higher the window size, the higher can the compression ratio be expected.

+ +
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file -- cgit 1.2.3-korg