31.3.2008
Ziproxy 2.5.2 released.
More bugfixes:
- Proxy authentication would bring access denial
if such was not requested by Ziproxy (unnecessary authentication sent by user).
Now it is simply ignored and access is normal.
- Ziproxy did not send the proper URL to the
server (so it failed) when connecting to another proxy
and the client accessed Ziproxy in transparent
proxy mode.
Fixed.
Also, some people may have noticed that there's no longer a src.rpm package at the downloads' section.
Generating that package was quite redundant, considering that the RPM specfile is already present inside the tar.bz2 file.
Ziproxy 2.5.2 is available at the files' section.
10.3.2008
Ziproxy 2.5.1 released.
Just a minor bugfix this time:
- When non-processable (htmlopt etc) data came already gzipped, Ziproxy tried to load it all into memory, then it recompressed again.
Now it streams that directly, unmodified. Should improve latency in certain cases.
Ziproxy 2.5.1 is available at the files' section.
29.1.2008
Ziproxy 2.5.0 released.
The changes, compared to the version 2.4.3, are:
- Rewritten and much improved JPEG 2000 support. It's much faster now and quality of the JPEG 2000 pictures are much, much better.
Many JP2-related options were added (although the defaults are quite reasonable).
Everyone are invited to give JPEG 2000 a try!
Note: JPEG2000 requires from the client either one of the following:
- Browser with native JPEG2000 support (such as Konqueror) OR
- Browser with installed JPEG2000 plug-in (there are for Firefox, possibly others) OR
- To install Ziproxy at the client side in order to convert JPEG2000 back to JPEG
Certain plug-ins/browsers (specially old versions) do have an incomplete JPEG2000 support and may break the pictures, or may even crash.
- Changed default configuration file to /etc/ziproxy/ziproxy.conf
This was needed in order to have a standard directory for the other (optional) configuration files.
- New example configuration files added.
- Manpages for ziproxy and ziproxylogtool added.
- Added a mechanism to "exempt" certain URLs from processing (broken webservers, broken sites etc).
- The basic authentication routines were mostly rewritten (code reorganization / speedup).
Ziproxy 2.5.0 is available at the files' section.
16.1.2008
Ziproxy 2.4.8_BETA2 released.
The second beta of the 2.4.8 version (actually the non-beta will be 2.5.0) has the following changes:
- Changed default configuration file from /etc/ziproxy to /etc/ziproxy/ziproxy.conf
There are other (optional) configuration
files that had no standard place to be, now their home is /etc/ziproxy
- New example configuration files included (which now has a suggested location of /etc/ziproxy/).
- Manpages for ziproxy/ziproxylogtool added. A contribution from Marcos Talau.
- Now it's possible to exempt certain URLs from Ziproxy processing (in case of malformed HTTP data, Ziproxy bugs or simply because compression is not desired for a specific location).
It has a simple pattern-matching provision, with "*". New option: URLNoProcessing
- The (basic) authentication routines were mostly rewritten. Mostly for code reorganization, but should be much faster as side-effect (only noticeable if one has many, many users).
Ziproxy 2.4.8_BETA2 is available at the files' section.
7.1.2008
Ziproxy 2.4.8_BETA released.
This beta version includes a faster and much improved JPEG 2000 (JP2) support.
Previous Ziproxy versions did include JP2 support, but it was sort of a limited experimental version and some people
who tried it was probably disappointed by its slowness and unimpressive image quality.
If you were one of them, you're invited to give another try to JP2 compression this time.
It is (really) recommended to read the included documentation on this format: JPEG2000.txt
The main changes/improvements in JP2 support:
- Much faster processing (JP2 is still heavier to process than JPEG).
- Supports both compression and decompression. It's possible to process incoming JP2 pictures now.
- Compression level is no longer rate-based, but quality-based such as JPEG.
- Supports YUV color model now. Previously only RGB and monochrome.
- Supports per-channel resulution setting. Previously only 8 bit per channel.
- Supports per-channel sampling resolution. Previously there was no such support.
- Added provisions for what one may call "Ziproxy tunnel mode" locally converting JP2 back
to (high quality) JPEG, so clients with no JP2 support may take advantage of that format still.
Since this release contains lots of new code, testing and bug reporting is specially appreciated in this case.
Ziproxy 2.4.8_BETA is available at the files' section.
15.12.2007
Ziproxy 2.4.3 released.
IMPORTANT BUGFIX IN THIS VERSION
Streaming data (no Content-Length) could be prematurely interrupted in certain cases. Fixed.
In practice that means that certain pages, under certain circumstances, could not load or load partially.
If you use Ziproxy in a production environment, this upgrade is highly recommended.
This bug appeared in version 2.4.2.
Ziproxy 2.4.3 is available at the files' section.
5.12.2007
Ziproxy 2.4.2 released.
Major bugfixes and minor misc improvements in this version.
-
The following bugs are now fixed:
- Fixed broken user pipe detection while transferring unprocessed stream-to-stream.
- When server breaks the connection, ziproxy immediately interrupted the transfer at client's side.
Now it will send the remaining data to the client. The previous behavior could bring premature disconnections.
- Content-Length wasn't being removed while stream-to-stream gunzipping. Fixed.
- Ziproxy crashed when AccessLogFileName wasn't defined. Fixed. This bug appeared in 2.4.1 version.
-
Improvements:
- Now (debug) log provides each line with the PID of the specific process servicing the specific HTTP request.
Previously it merely provided the base Ziproxy process, what is pretty much useless in daemon mode and made sense only while using (x)inetd, or in pre-1.9.0 versions.
- Stream-to-stream (no further processing) routines were rewritten and are >100x times faster now. This may bring noticeable difference in cases where outgoing data is something like 10 Mbps or more.
- Added access log flag 'W'.
Ziproxy 2.4.2 is available at the files' section.
23.11.2007
Ziproxy 2.4.1 released.
This release feature some interesting new options and brings important improvements to the access logger.
It also includes a bugfix which will, hopefully, bring a definitive end to (rather rare but still happened) processes busy-loop crashing.
-
The following bugs are now fixed:
- When decompressing jpeg incomplete files, ziproxy process crashes (busy loops) until it timeouts.
This is a very old bug, finally fixed.
-
New features/options:
- New option: BindOutgoing
If you have a huge number of users behind Ziproxy this option probably makes sense for you.
- New option: AccessLogUserPOV
- Added new xml types as (gzip) compressible *1.
Added 'pdf' and 'tar' as compressible application types.
- Added access log support for interrupted/timeouted transfers.
Added access log flags 'Z' (timeout) and 'B' (broken pipe, interrupted)
*1 - Pointed out by Artem S. Tashkinov
Ziproxy 2.4.1 is available at the files' section.
7.11.2007
Ziproxy 2.4.0 released.
This release (relative to 2.3.0) is a bugfix-oriented one. There are no exciting new features this time, still it deserved a middle version jump due to the extensive changes applied to the code.
Relative to version 2.3.5_BETA, the changes are as follow.
-
The following bugs are now fixed:
- In certain cases, random junk was appended at the top of html file.
- Trivial overflow problem which gave false positives for "gunzip threshold limit".
- Ziproxy tried to load into memory, data types which are not supposed to be processed, thus adding unnecessary latency.
- When config file was empty, the following error occurred: ERROR: Invalid parameter --> <empty>
- Intermitent bug when gzip-streaming pages (random numbers appeared in the body of the page, mixed with the content).
This bug appeared in 2.3.5_BETA.
- Misc fixes to HTMLopt: maps.google.com and www.hotmail.com seem to work after optimization, now.
-
New features/options:
- New option: MinUncompressedGzipStreamEval
- Added support for javascript files as text/javascript (relevant only when JS optimization is enabled).
- HTMLopt: Now tests whether text/html is indeed html.
In practice, it's not always the case: certain (or most?) servers send pure (non-html encapsulated) JS or CSS and the resulting data will likely end corrupted.
This is a recommended upgrade, specially if you're using version 2.3.0.
Ziproxy 2.4.0 is available at the files' section.
26.10.2007
Ziproxy 2.3.5_BETA released.
Due to the nature of the changes in this version, this is being released as beta version.
This version is expected to work well, but new bugs may be introduced.
Attention: starting from this version, Ziproxy no longer uses libConfuse.
New features / improvements:
- Replaced libconfuse with qparser (built-in config parser), thus that library is no longer used.
- New option:
WA_MSIE_FriendlyErrMsgs (workaround for MSIE bug),
- Added (limited) support for partial data download (Content-Range, Range).
- Added gzip/gunzip stream-to-stream support. Appliable when no other optimizations are requested/viable.
- Now logs always report gzipped transfers new sizes.
- Changed some defaults to more sensible values.
Bugfixes:
- Broken gzip were not being uncompressed (that's ok) but Ziproxy attempted to recompress those again. Fixed.
- Requests were broken when in transparent proxy mode _and_ the client explicited the port. Fixed.
- Fixed missing includes and certain inconsistencies in the source code. That could (or did) prevent compilation in certain OSes.
- Fixes x86_64 (and possibly other arches) parsing problems (see new features: qparser).
- MinTextStream was using the decompressed size, what is senseless if the data came pre-compressed by the remote server. Fixed.
- Many other misc bugfixes.
Ziproxy 2.3.5_BETA is available at the files' section.
13.9.2007
Ziproxy 2.3.0 released.
This version includes some improvements and some bugfixes:
- New: support for remote host-side gzip compression.
- Fixed compatibility code for IPv4-only OSes.
- Slightly more informative error pages.
- A couple of bugs in HTMLopt were fixed
(still HTMLopt is far from being production quality).
- New options:
- AllowMethodCONNECT
- OverrideAcceptEncoding
- MaxUncompressedGzipRatio
- RedefineUserAgent
- DecompressIncomingGzipData
- ProcessHTML_TEXTAREA
- Miscellaneous fixes and changes in the HTTP routines.
Warning: This version is expected to work well, but due to some deeper changes in the code (required in order to add remote host-side gzip support) it's possible to encounter a bug absent in previous versions.
If that happens to you, please report that along with instructions on how to replicate that.
Ziproxy 2.3.0 is available at the files' section.
8.5.2007
Ziproxy 2.2.2 released.
This version is mostly bug-fixes:
- Some files with too many headers were not loadable (typically some wikipedia.org pictures). Fixed.
- HTMLopt: Fixed commented (escaped, in a way) CDATA XML tag which was being removed.
- HTMLopt: Fixed trailing trash in html/javascript/css which was being removed.
- Ziproxylogtool: Added internal caching (about 4.5x faster in large logs now).
- Added README.tools.
Ziproxy 2.2.2 is available at the files' section.
19.12.2006
Ziproxy 2.2.1 released.
Pankov Pavel pointed out that version 2.2.0 has a compilation issue under FreeBSD (possibly other non-GNU OSes aswell). Fixed.
A new record: 2.2.0 is the shortest lived Ziproxy release ever.
Ziproxy 2.2.1 is available at the files' section.
18.12.2006
Ziproxy 2.2.0 released.
"Let's release a version in time for Christmas"
New features:
- Ziproxy Log Tools. Even includes output to fancy HTML.
New options added:
- ConventionalProxy
- Address
- Nameservers *1
Fixed bugs:
- HTTP 302/304 bug (prevented youtube.com from working properly) *1
- Ziproxy was passive when collecting zombie children *1
- AllowLookChange has incorrect default
- Standalone javascript files weren't being compressed *2
*1 - Fixed/Implemented by Heiko Hund (reported by Dimitrij Hilt).
*2 - Reported/Fixed by Alex, from Ukraine.
Ziproxy 2.2.0 is available at the files' section.
2.9.2006
Ziproxy 2.1.1 released.
Fixed a compilation bug, when Jasper is enabled.
Modify suffixed is now disabled by default, even with Jasper enabled.
Ziproxy 2.1.1 is available at the files' section.
26.7.2006
Ziproxy 2.1.0 released.
This version introduces an experimental HTML, Javascript and CSS optimizer.
The gains of such optimizations varies from site to another, some sites are already pre-optimized
so the size reduction, after gzipping, in such cases may be about 5-10%.
Unoptimized handcrafted code may become even 50% smaller (2/3 their size after gzipping), such
as this one.
Feedback on this feature is appreciated. If you wish to report broken URLs, it would be kind to
provide what kind of optimization is breaking that page (javascript, CSS, etc).
This release also includes some misc bugfixes (see ChangeLog).
Ziproxy 2.1.0 is available at the files' section.
29.6.2006
Ziproxy 2.0.0 FINAL released.
There were minor changes compared to 1.9.0:
- PDF, RTF (and shortnamed mime types in general) now gzip correctly.
- Changes to the rpm specfile allowing of static binary generation.
Don't be scared of the trailing zeroes in this version number, Ziproxy 2.0.0 is the most stable release currently.
I like repeating myself: the new version is available at the files' section.
18.5.2006
New Ziproxy version 1.9.0 (aka 2.0.0 beta) available.
After six months of hiatus, it's available now a new version of Ziproxy, 1.9.0, which is a beta version of the upcoming 2.0.0.
The major version bump happened not only because of the new features, but also because the fact there's also some break of compatibility caused
by structural differences between this version and the previous one (1.5.2).
The new features in this version:
- Monolithic architeture. Netd is obsolete, there's only the "ziproxy" binary now, which operates in both daemon mode and [x]inetd mode.
- Transparent proxy mode, self explanatory. Option: TransparentProxy
- Detailed access log. Provides, among other informations, compression statistics. Option: AccessLogFileName
- New tuning parameter. Option: MinTextStream
- New command line parser. Type "ziproxy --help" to get the idea.
Please report the bugs you find and, pretty please, along with the description on how to duplicate it.
The new version, as usual, is available at the files' section.
Have fun!
20.11.2005
Homepage new layout and new logo.
The old page seemed rather confusing to read, so here we have a new layout.
Yes, I know it's colorful and stuff, but the idea is to make the site easier to read.
The contents are almost untouched tough.
We also have a logo for Ziproxy (well, why not).
15.11.2005
New stable release: 1.5.2
Improvements:
- New feature: Authentication support. Contributed by Roman Korolyov.
Note: There was a previous 1.5.1 version I forgot to announce in this page.
18.7.2005
New stable release: 1.5.0
Improvements:
- New feature: Preemtive hostname resolver.
- Error messages are now customizable. Examples included.
Fixed bugs:
- Fixed transparent gif misdetection (AllowLookChange=false).
- Fixed bug which prevented compilation with JPG2k support.
- Ziproxy tried to connect only to the first IP from a resolved hostname (some few sites returned "connection refused"). Now fixed.
- Misc changes/fixes to RPM specfile.
- Fixed compilation libpng-related warnings.
17.6.2005
New stable release: 1.4.0
Improvements:
- Added new options to the config file: ProcessJPG, ProcessPNG, ProcessGIF.
- Added initscript, for convenience.
- Added RPM specfile.
- Improventes to the example config file.
Fixed bugs:
- Fixed: Random crashes in Ziproxy process.
- Fixed: The "socket busy" bug.
12.6.2005
New maintainer
Since today Ziproxy is now being maintained by Daniel Mealha Cabrita.
From: Juraj Variny <xxxx@xxxxxxx>
To: Daniel Mealha Cabrita <xxxxx@xxxxxx>
Date: Sun, 12 Jun 2005 13:04:48 +0200
Subject: [Ziproxy-users] Re: bugfix for Ziproxy
I did not asked for uber-clean patches. Correct and useful ones are
sufficient. :o)
Thus, your patch was committed into CVS and you are now admin of the project.
Good luck!
Juraj
On Saturday 11 June 2005 21:45, you wrote:
> I'm sending you the patch, attached. It's a quick-and-dirt fix actually,
> but the only (rare) crashes I've had afterwards were libungif-related only.
>
> If you still feel it's ok to transfer the project to my hands, my
> sourceforge login is: dmcabrita.
>
>
> .dan
30.9.2004
New stable release: 1.3d. Fixed bugs:
- Removed chunked encoding issue when accessing some servers.
- LibConfuse is linked statically by default.
6.8.2004
Due to serious
security flaws in libpng, static ziproxy binaries were recompiled
using patched libpng-1.2.5.
Download.
If you compiled ziproxy yourself from source, I recommend update and recompile,
either.
14.7.2004
New stable release: 1.3c. Fixed bugs:
- Better libconfuse detection (using confuse-config from confuse 2.3).
- More permissive parsing of headers (sites like bestbuy.com didn't work).
- Images or compressible content that exceed MaxSize are now forwarded unchanged instead of error.
- Fixed HTTPS behavior if NextProxy is set.
10.1.2004
New testing release: ziproxy-10012004. Added an AllowLookChange option. It
causes ziproxy to avoid compression of animated or transparent images.
24.11.2003
New stable release: 1.3b. Fixed typo causing all POST requests to fail.
23.11.2003
New stable release: 1.3. Serious compression/timeout bugs were fixed. The
JPEG2000 code is still in beta status, as nobody other tested it.
29.10.2003
New testing release: 1.3beta. Features:
- New autotools-based installer, configure script with bunch of convenient
options. No more Makefile editing! In case something goes wrong, there's
still plain Makefile in src/ .
- GIF->PNG lossless image conversion where appropriate, with transparency
preserved.
- HTML modification is considered obsolete and turned off by
default.
- JPEG2000 mode (compile-time option). It is intended to work together
with JP2 plugin for MSIE (see below), while still fully compatible
with non-JP2 browsers.
- HTTP/1.0 Simple Response support, with image header detection and
compression.
- Many bugfixes (better timeout behaviour, PNG reading bug,
LogPipe set in incompatible mode by default, ...).
16.8.2003
If you're interested in JPEG2000, this is something for you.
JPEG2000 is new image format
aimed to replace JPEG. It is supported by some browsers
(MSIE and Mozilla plugins).
Ziproxy now can optionally compress images into it instead of
classical JPEG. You need Jasper library.
For further instructions get latest ziproxy from CVS and consult JPEG2000.txt.
9.8.2003
Released ziproxy-1.2b. It contains few bugfixes and following
features:
- Some or all pictures may be converted to grayscale. This
improves visual quality, while keeping file size.
- If you are not willing to start netd with IP
address each time you're dialing, you may now use
range of IP addresses in OnlyFrom option.
- libConfuse 2.x support (don't forget to set it in Makefile).
23.7.2003
Uploaded first usable version of this web page.
|
|
Ziproxy is forwarding, non-caching, compressing HTTP proxy server.
Basically it squeezes images by converting them to lower quality JPEGs or JPEG 2000 and compresses (gzip) HTML and other text-like data.
It also provides other features such as: HTML/JS/CSS optimization, preemptive hostname resolution, transparent proxying and more.
Ziproxy is an option when dealing with low-bandwidth cases like:
- ISPs providing dialup services
- ISPs providing mobile internet services
- HTTP WAN optimization cases
- Low bandwidth (or saturated) point-to-point connections in general
Ziproxy may be called a "web accelerator", although it is not the best name, considering the number of snake oil products advertised as such.
Ziproxy operates in daemon mode. It also may be invoked by (x)inetd if desired (not recommended for performance reasons).
It is HTTP/1.1-aware and compatible with HTTPS.
Currently it is known to be usable under the following OSes: Linux (Red Hat, Conectiva, Debian), FreeBSD and Cygwin (there were reports on Mac OS X and Solaris compatibility aswell).
It ran successfully under the following architectures: x86, x86-64 and SPARC32.
And it was successfully compiled under GNU GCC and Intel's ICC.
Ziproxy is available as a free (FOSS) software under the GNU GPL (version 2 or higher) license.

example of web compression

original image vs standard JPEG vs JPEG 2000

using Ziproxy - typical setups

example of customized error

example of output by log tools
|
Ziproxy requires libraries which are pretty much standard nowadays, thus the chances are that your OS already offer them pre-packaged.
The latest Ziproxy version requires:
- libungif
- libpng
- libjpeg-6b
- zlib
- libjasper
(required if JPEG2000 support is to be enabled)
|
|
PERFORMANCE OPTIMIZATIONS
|
If you have a scenario with many concurrent users, consider the following options:
- Run Ziproxy with a machine with at least 1 MB of L2 CPU cache per core, 2 MB (or more) the better.
Many MHz won't save a CPU with 256kB L2 cache and performance will suffer, badly.
- Run Ziproxy in daemon mode.
Running under (x)inetd is (naturally) much slower and only viable for personal use.
- If you have considerable latency in your main (fast) data link to the Internet, you may want to disable HTMLopt and PreemptDNS so the HTML pages will be streamed directly to the user while being loaded by Ziproxy (Gzip may be applied during streams, no problem).
This way you will lower the latency experienced by the user since you cannot start loading the pictures in parallel before the HTML page arrives.
- If you have a lot of users sharing the same compressed data link, it might be a good idea to use a caching proxy at their side.
That's quite obvious, but worth remembering anyway.
- Seriously consider installing a good DNS caching system serving Ziproxy if it has a very high number of users.
Ziproxy does not have an internal DNS caching system, it tries to resolve the hostname of each request received.
|
Are you using xinetd with ziproxy? Then disable LogPipe option in ziproxy.conf. Or disable both LogPipe and
LogFile options to turn off the logging completely. Piping the logging output through
other program is supported only if you use netd. It's my mistake I kept these
options on in default ziproxy.conf, with too terse disclaimer.
To get IE accepting gzipped data, under Internet Options/Advanced tab check option
``Use HTTP/1.1 extensions when using proxy''.
Some transparent GIFs/PNGs are displayed with incorrect background. It's because
JPEG can't store transparency information, and background color information is
"out there" in HTML. With AllowLookChange option you can make ziproxy avoid these images.
For every HTTP request, new ziproxy process is started. In case of intensive parallel
downloading/mirroring (for example, with HTTrack or wwwoffle -fetch), number of
processes may reach maximal user processes limit set by administrator. To avoid
the problem, set subsequent limit for netd using limit(csh) or ulimit(bash) shell
command.
|
The standard way of asking questions, requesting features, reporting bugs or receiving announcements. is using one of our mailing lists:
- ziproxy-users: discussion
about ziproxy compilation and usage, usage questions, feature requests, bug reports
- ziproxy-announce: ziproxy announcements (read-only)
- ziproxy-devel: developers' discussion, submitting patches
If you encounter problem with this webpage (broken link, information missing here, errors etc), you may contact the maintainer directly.
|
Current Ziproxy maintainer (since v1.4.0):
Daniel Mealha Cabrita
For support on Ziproxy usage please use the ziproxy-users mailing list.
Ziproxy's original maintainer:
Juraj Variny
|
|