Git Product home page Git Product logo

squid_gzip's Introduction

This patch adds the feature of http compression on the fly for squid-2.7

=STATUS=

This patch is at its very early phase of development and considered
highly experimental. But you're encouraged to test it out on your side
and report any quirks that you experience.

We need your help! If you find this module useful and/or interesting,
please consider joining the development!

=INSTALLATION=

Get the squid-2.7 source from http://www.squid-cache.org/Versions/v2/2.7/
Get the patch from http://github.com/yaoweibin/squid_gzip

cd squid-2.7
patch -p1 < /path/to/http_gzip.patch

compile squid with the following command:

./bootstrap.sh && ./configure --enable-http-gzip && make

=EXAMPLE=
I have tested in accelerator mode.
<code>
http_gzip on
http_gzip_types text/html,text/plain
</code>

=DIRECTIVES=
    ==http_gzip==
    syntax: http_gzip on|off
    default: on
    context: main
    description: switch the http compression 

    ==http_gzip_prefer_gzip==
    syntax: http_gzip_prefer_gzip on|off
    default: on
    context: main
    description: sends gzip content to user agents who can accept both 
    gzip and deflate content.

    ==http_gzip_prefer_deflate==
    syntax: http_gzip_prefer_deflate on|off
    default: on
    context: main
    description: sends deflate content to user agents who can accept 
    both gzip and deflate content. If prefer_deflate and perfer_gzip are
    both on. deflate is higher priority than gzip.

    ==http_gzip_types==
    syntax: http_gzip_types [mime types]
    default: text/html
    context: main
    description: This directive set the MIME types list which need to be 
    compressed. The types need be separated by ',' and there should not 
    be any space between types.

    ==http_gzip_hash==
    syntax: http_gzip_hash memLevel
    default: 8
    context: main
    description: The memlevel parameter specifies how much memory should be
    allocated for the internal compression state. memLevel=1 uses minimum memory
    but is slow and reduces compression ratio; memLevel=9 uses maximum memory
    for optimal speed. 

    ==http_gzip_comp_level==
    syntax: http_gzip_comp_level level
    default: 9
    context: main
    description: The compression level, between 1 and 9, where 1 is the 
    least compression (fastest) and 9 is the most (slowest).

    ==http_gzip_min_length==
    syntax: http_gzip_min_length length
    default: 0
    context: main
    description: Sets the minimum length of of the response that will be
    compressed. Responses shorter than this will not be compressed. Length is
    determined from the "Content-Length" header.

    ==http_gzip_window==
    syntax: http_gzip_window windowBits
    default: 15
    context: main
    description: The windowBits parameter is the base two logarithm of the
    window size (the size of the history buffer). It should be in the range
    8..15 for this version of the library. Larger values of this parameter
    result in better compression at the expense of memory usage. 

    ==http_gzip_prealloc==
    syntax: http_gzip_prealloc size
    default: 256 KB
    context: main
    description:  We preallocate a memory for zlib in one buffer (default:
    256K), this decreases a number of malloc() and free() calls and also
    probably decreases a number of syscalls (sbrk()/mmap() and so on).

=TODO=

=LICENSE=

Copyright (c) 2010, Netease Inc. ( http://www.netease.com ).

This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License (version 2) as
published by the Free Software Foundation.  It is distributed in the
hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.  See the GNU General Public License for more details.

Questions/patches may be directed to Weibin Yao, [email protected]

squid_gzip's People

Contributors

yaoweibin avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.