Port80 Software
My Port80 Shopping Cart Sign up
Products
choose a product:

ZipEnable Docs

ZipEnable is a tool for the deployment and configuration of Internet Information Services (IIS) 6.0's built-in compression feature on Windows Server 2003 systems.



ZipEnable Logo



Getting Started with ZipEnable

ZipEnable consists of components that make up the whole product.
  • Graphical User Interface
    The GUI is the core of ZipEnable; you have granular control of Microsoft IIS 6.0 compression and access to advanced compression settings.

  • ISAPI Extension
    The ISAPI Extension controls the browser exclusion and CPU rollback functions of ZipEnable.

  • Command Line interface
    Allows one to easily granularly configure compression and browser exclusions.

back to top

Installation

Installing ZipEnable is very simple. Once you have downloaded the installer executable from the Port80 website, double click on the file to begin the ZipEnable setup program.

The ZipEnable setup program will guide you through the steps necessary to complete the installation. You will be asked to accept the license agreement and to choose an installation destination. The default installation location is C:\Program Files\Port80\ZipEnable.

Files Installed by ZipEnable
ZipEnable installs the following files in the following default locations:

In C:\Program Files\Port80\ZipEnable\
ZipEnable.exe ZipEnable settings manager
ZECmd.exe ZipEnable command line interface
ZipEnableWizard.exe ZipEnable Wizard
w3svcupd.exe Installer utility for updating metabase
Activation.txt ZipEnable activation informational file
Documentation.htm ZipEnable HTML Documentation
ReleaseHistory.htm ZipEnable Release History
TechSupport.htm Shortcut to online technical support
Files (directory) Supporting files for Documentation.htm, ReleaseHistory.htm, and TechSupport.htm
In C:\%SystemRoot%\System32\inetsrv\
ZEIsapi.dll ZipEnable Browser Exclusions ISAPI wildcard extension DLL

Configuring ZipEnable


Global Properties Tab
This tab allows you to globally (that is, for the server) enable and disable compression for static (i.e. .htm, .txt) and dynamic (i.e. .asp, .php) content and access the other advanced global settings.

Screenshot

Compress Static Content
To allow IIS 6.0 to compress responses to requests for static content, check the box labeled "Compress Static Content."

To further configure IIS 6.0 compression for static content, click on the "Configure" button in the "Static Compression Settings" box to bring up the Static Compression Settings.
Note: static compression must also be enabled for at least one compression scheme as well as here for IIS 6.0 to send compressed responses for static content.

Compress Dynamic Content
To allow IIS 6.0 to compress responses to requests for dynamic content, check the box labeled "Compress Dynamic Content."

To further configure IIS 6.0 compression for dynamic content, click on the "Configure" button in the "Dynamic Compression Settings" box to bring up the Dynamic Compression Settings..
Note: dynamic compression must also be enabled for at least one compression scheme as well as here for IIS 6.0 to send compressed responses for dynamic content.

Run Wizard
By clicking on the "Run Wizard" button, the ZipEnable Configuration Wizard will be launched and will guide you through the configuration for IIS 6.0 compression.


Advanced Settings
These buttons bring up the corresponding advanced settings.

back to top

Configure Static Compression Settings

This dialog allows you to globally (that is, for the server) enable and disable Gzip and Deflate compression for static content.

Screenshot

Enable
Clicking this box enables IIS 6.0 to use the compression scheme (Gzip or Deflate) to compress responses to requests for static content.
Note: "Compress Static Content" must also be enabled at the global level for IIS 6.0 to use Gzip static compression.
Compression Level
This is the level of compression that is associated with the compression scheme. A value of 10 will result in the maximum amount of compression, but will have a larger CPU hit. A value of 1 will put the least amount of stress on the CPU, but will only give a minimal amount of compression. We recommend using a value of 6 in order to maximize the file compression while minimizing the CPU load.

Configure File Extensions
Click on the "Configure" button to indicate which file name extensions are supported by compression scheme.

Screenshot When using the specified compression scheme, IIS 6.0 will only compress static files with the specified file extensions. If this list is empty, no static files will be compressed using the specified compression scheme.

To add an extension to the list: click on the "Add" button, enter the desired extension in the pop-up dialog, then click "OK." To edit an extension in the list: first highlight it, click "Edit," modify the extension in the pop-up dialog, then click "OK." To delete an extension from the list: highlight the desired extension, then click "Delete."

When all changes are complete on the file extensions dialog, click "OK" to accept the changes and dismiss the dialog. Click "Cancel" to dismiss the dialog without accepting the changes.

When all changes are complete on the static compression settings dialog, click "OK" to accept the changes and dismiss the dialog. Click "Cancel" to dismiss the dialog without accepting the changes.

back to top

Configure Dynamic Compression Settings

This dialog allows you to globally (that is, for the server) enable and disable Gzip and Deflate compression for dynamic content.

Screenshot

Enable
Clicking this box enables IIS 6.0 to use the compression scheme (Gzip or Deflate) to compress responses to requests for dynamic content.
Note: "Compress Dynamic Content" must also be enabled at the global level for IIS 6.0 to use Gzip dynamic compression.
Compression Level
This is the level of compression that is associated with the compression scheme. A value of 10 will result in the maximum amount of compression, but will have a larger CPU hit. A value of 1 will put the least amount of stress on the CPU, but will only give a minimal amount of compression. We recommend using a value of 6 in order to maximize the file compression while minimizing the CPU load.

Configure File Extensions
Click on the "Configure" button to indicate which file name extensions are supported by compression scheme.

Screenshot When using the specified compression scheme, IIS 6.0 will only compress dynamic files with the specified file extensions. If this list is empty, no dynamic files will be compressed using the specified compression scheme.

To add an extension to the list: click on the "Add" button, enter the desired extension in the pop-up dialog, then click "OK." To edit an extension in the list: first highlight it, click "Edit," modify the extension in the pop-up dialog, then click "OK." To delete an extension from the list: highlight the desired extension, then click "Delete."

When all changes are complete on the file extensions dialog, click "OK" to accept the changes and dismiss the dialog. Click "Cancel" to dismiss the dialog without accepting the changes.

When all changes are complete on the dynamic compression settings dialog, click "OK" to accept the changes and dismiss the dialog. Click "Cancel" to dismiss the dialog without accepting the changes.

back to top

Site Level Properties tab

This tab allows you to enable and disable static and dynamic compression at the site level, as well as any given node in a particular site.

Screenshot

To enable/disable compression for a site, click on the desired column (static or dynamic) and a drop-list will appear, then choose "On" to enable compression or "Off" to disable compression. You may also right-click on the desired site or node to bring up a pop-up menu which allows one to modify the node compression settings.

Screenshot Screenshot

When you choose a site in the Virtual Server list, the file and directory structure will appear in the tree. The "Static" and "Dynamic" columns display whether or not the node is set to allow that type of compression. An '*' next to the "Yes" or "No" status means the node inherits its setting from its parent node (if the node is at the site root, it inherits the value at the site level).

If a compression type (static or dynamic) is disabled at the global level or if all of the compression schemes (i.e. Gzip and Deflate) are disabled for a given compression type, the status will be displayed as "No." Also, if a file extension is not supported by static or dynamic compression, its status will be displayed as "No."

For example, the image above is displaying the status of the "Default Web Site." On the Global Properties dialog, static compression is enabled, and dynamic compression is disabled. Also, static Gzip compression is set to support these file extensions: .htm, .html, and .js. Since dynamic compression is disabled on the Global Properties dialog, dynamic compression for all of the nodes is disabled.

Since static compression is enabled on the Global Properties dialog and all of the folder nodes are inheriting their setting from their respective parent nodes, they are all enabled. Since Gzip static compression supports .js files, static compression for "my_script.js" is enabled. However, neither Gzip or Deflate static compression are set to support .gif, .jpg, or .asp files, therefore, static compression for "my_image.gif", "my_image.jpg", and "index.asp" is disabled.

To enable/disable compression for a given node, click on the desired column (static or dynamic) and a drop-list will appear, then choose "Yes" to enable compression or "No" to disable compression.

For example, below, the images folder node has been disabled. Since its value has been changed, it is no longer inheriting from its parent. However, its child folders, "gifs" and "jpgs" inherit the new status.
Note: If you attempt to enable compression for a node and compression is disabled on the Global Properties dialog, you will be asked if you would like to enable compression on the Global Properties dialog.

If you attempt to enable compression for a file node and the compression schemes do not support the file extension, you will be asked if you would like the compression schemes to support that file extension.
back to top

Persistent Overrides Option

To enable Persistent Overrides, go to:

Settings -> Site Level -> Enable Persistent Overrides

Screenshot

The Persistent Overrides option allows you to alter the default inheritance relationship between parent and child nodes in the Site Level Properties tree view. By default, when a parent node's compression status is changed, its subordinate child nodes inherit the compression status of that parent node. With the Persistent Overrides option turned on, a child node will maintain a Yes or No status for compression as you have set it, despite any changes made to parent node compression settings. Inheritance for a particular file is indicated by an asterisk (*) next to the Yes/No setting for that file in the tree view interface under Site Level Properties.

back to top

Advanced Settings - Browser Compatibility Detection

Certain browsers indicate compression compatibility in the Accept-Encoding header when they cannot actually process compressed content for particular file types. ZipEnable provides default exclusions for known browser/compression incompatibilities. To access ZipEnable's browser compatibility settings, click on "Configure..." next to "Browser Compatibility" on the Global Properties tab, or go to:

Settings -> Advanced -> Browser Compatibility

Screenshot

Enable Browser Exclusions
This enables the ZipEnable ISAPI wildcard extension to exclude specified browsers from receiving compressed content based on their User-Agent request header and the file extension of the requested resource.

User Agent Strings
This is the list of browser strings that the ZipEnable ISAPI wildcard extension will search for in the User-Agent request header. When you click on a User Agent string, the list of file extensions that ZipEnable will exclude from compression (for that User Agent) will appear on the right.

When you add a User Agent string, an '*' will match any number of characters and a '?' will match any one character. For example:

*MSIE 5.?*

will match these User-Agent request headers:

  • MSIE 5.0
  • Mozilla/4.0 (compatible; MSIE 5.0; WinNT)
  • Mozilla/4.0 (compatible; MSIE 5.5; PPC)
but not these User-Agent request headers:

  • Mozilla/4.0 (compatible; MSIE 6.0; WinNT)
  • Mozilla/4.0 (compatible; MSIE; PPC)

File Extensions
This is the list of file extensions (for the currently selected User Agent string) in which requests will be excluded from receiving compressed content, regardless of the value of the Accept-Encoding request header.

To match all file extensions for a given User Agent string, use an '*'.

Restore Defaults
When clicked, this button will restore the default ZipEnable browser exclusions.

back to top

Advanced Settings - CPU Roll-off

To access ZipEnable's CPU roll-off settings, click on "Configure..." next to "CPU Rolloff" on the Global Properties tab, or go to:

Settings -> Advanced -> CPU Roll-off

Screenshot

When enabled, ZipEnable will disable compression when the CPU usage rises above the specified threshold, and re-enable compression when the CPU usage falls below the specified threshold.

Restore Defaults
When clicked, this button will restore the default ZipEnable CPU Roll-off settings.

back to top

Advanced Settings - Cache

The Disk Settings allow you to specify properties for the static compression cache.

To access ZipEnable's cache settings, click on "Configure..." next to "Cache Settings" on the Global Properties tab, or go to:

Settings -> Advanced -> Cache Settings

Screenshot

Cache Directory
This specifies where IIS 6.0 temporarily caches compressed versions of static files.

You can manually type the directory location or you can click "Browse" to browse for the directory.

If static compression is enabled on the Global Properties dialog and for at least one compression scheme, IIS 6.0 serves requests for static files from this cache directory if it has been previously cached. If the static does not exist in the cache directory, it is placed in a queue to be compressed by a separate process.

Limit Cache Size
This setting specifies whether or not IIS 6.0 will limit the disk space taken up by the Cache Directory.

If this setting is disabled, no limit is enforced on the disk space that the "Cache Directory" uses. If this setting is enabled, IIS 6.0 will limit the disk spaced used by the "Cache Directory" to the amount in the "Maximum Disk Space Usage" setting.

Note: Limiting the cache size has a significant impact on IIS 6.0 performance because additional overhead is required to check for the limit. Use this feature only when you lack adequate disk space to cache all static content files on your Web server.
Maximum Disk Space Usage
If "Limit Cache Size" is enabled, this setting specifies the size limit that IIS 6.0 enforces on the "Cache Directory."

Files Deleted Per Disk Free
If "Limit Cache Size" is enabled, this setting specifies the number of compressed files that are deleted from the "Cache Directory" when IIS 6.0 determines that the "Cache Directory" has surpassed the "Maximum Disk Space Usage" limit. IIS 6.0 deletes the number of files equal to this setting, starting with the LRU (least-recently used) files.

Restore Defaults
When clicked, this button will restore the IIS 6.0 default values for this dialog.

back to top

Advanced Settings - Compression Exclusion

The Compression Exclusion Settings allow you to exclude certain User Agents and requests from being compressed.

To access ZipEnable's compression exclusion settings, click on "Configure..." next to "Compression Exclusion" on the Global Properties tab, or go to:

Settings -> Advanced -> Compression Exclusion

Screenshot

Compression for HTTP 1.0 User Agents
This property allows you to disable compression of requested resources for User Agents with the HTTP 1.0 version number.

HTTP 1.0, as described in RFC 1945, provides a minimal level of support for certain types of compression. However, some confusion exists around HTTP 1.0 compression, especially with regard to proxy servers.

Compression for Requests Through Proxies
This property allows you to disable compression for requests that have come through proxy servers.

HTTP proxy servers, including some advertised as HTTP 1.1 compliant, do not correctly handle the caching of compressed objects.

Compression for Range Requests
This property allows you to disable compression for requests that have the Range request header present.

The HTTP 1.1 RFC 2068 is ambiguous about whether Range requests apply to the compressed or uncompressed version of a file. Some User Agents could be unprepared for compressed Range responses.

Restore Defaults
When clicked, this button will set the IIS 6.0 default values for this dialog.

back to top

Advanced Settings - Compression Schemes

The Disk Settings allow you to specify properties about the static compression cache.

To access ZipEnable's compression schemes settings, click on "Configure..." next to "Compression Schemes" on the Global Properties tab, or go to:

Settings -> Advanced -> Compression Schemes

Screenshot

Gzip and Deflate Priorities
These properties allow you to set the priorities for the Gzip and Deflate compression schemes.

Certain resource requests might contain both schemes in the Accept-Encoding header:

Accept-Encoding: gzip, deflate
IIS 6.0 determines which compression scheme to use when compressing a response by choosing the scheme with the highest priority.

Note: It is recommended that each scheme is set to a different priority.
Restore Defaults
When clicked, this button will set the IIS 6.0 default values for this dialog.

back to top

Advanced Settings - Miscellaneous

The Miscellaneous Settings allow you to specify properties about the compression buffer sizes, minimum files sizes, and compression queue lengths.

To access ZipEnable's miscellaneous settings, click on "Configure..." next to "Miscellaneous" on the Global Properties tab, or go to:

Settings -> Advanced -> Miscellaneous

Screenshot

I/O Buffer Size
This property specifies the size of the buffer (in bytes) that IIS 6.0 uses to read uncompressed files. A larger buffer yields slightly faster compression performance, but at the cost of additional memory usage.

Note: This property is valid only when static compression is enabled.
Compression Buffer Size
This property specifies the size of the compression buffer (in bytes) that IIS 6.0 uses for receiving compressed data. A larger buffer yields slightly faster compression performance, but at the cost of using additional memory.

Note: This property is valid only if static or dynamic compression is enabled.
Minimum File Size for Compression
This property allows you to specify the minimum size (in bytes) a static file must be for it to be compressed by IIS 6.0.

Very small files do not compress well, and in some cases, compression may even make the file larger than it was initially.

A value of 0 means that all files are compressed, regardless of size.

Maximum Queue Length
When static compression is enabled and IIS receives a request for a non-cached static file, the request is put into a FIFO (first in, first out) queue to be compressed and cached by a background process. This property specifies how many concurrent background compression requests can be in the queue. If the queue is full, additional compression requests are ignored until there is room in the queue.

Restore Defaults
When clicked, this button will set the IIS 6.0 default values for this dialog. They are:

back to top

Configuration Wizard

You can access from the Start menu:
Start >> Programs >> Port80 >> ZipEnable >> ZipEnable Configuration Wizard
or from the ZipEnable GUI.

To access the ZipEnable Configuration Wizard from the ZipEnable GUI, choose "Run Configuration Wizard" from the File menu:

Screenshot

or click "Run Wizard" on the Global Properties dialog:

Screenshot

back to top

Configuration Wizard - Static Compression Settings

This dialog helps you configure compression of static content for IIS 6.0.

Screenshot

Would you like to compress static content? If you would like IIS 6.0 to compress responses to requests for static content, then choose "Yes," otherwise, choose "No."

Choose the level of compression Higher compression levels generally result in smaller compressed files but with higher CPU and memory usage. Lower compression levels produce slightly larger compressed files, but with lower overall impact on CPU and memory resources. We recommend using Level 6 to maximize compression while minimizing CPU and memory usage.

Compress files with these file name extensions IIS 6.0 will only compress static files with the specified file extensions. If this list is empty, no static files will be compressed.

To configure the file extensions, click on the "Configure" button.

Screenshot

To enable a file extension, click on the desired file extension, then click on the "Supported" column. A drop-list will appear, then choose "Yes" to enable the file extension or "No" to disable it.

If a file extension that you would like to enable does not appear in the list, click the "Add" button, enter the desired extension in the pop-up dialog, then click "OK."

When all changes are complete on the file extensions dialog, click "OK" to accept the changes and dismiss the dialog. Click "Cancel" to dismiss the dialog without accepting the changes.

Virtual Servers
The selected virtual servers in this list will be enabled to compress static content. To select multiple virtual servers, hold down the "Ctrl" button while clicking on the desired virtual server names.

back to top

Configuration Wizard - Dynamic Compression Settings

This dialog helps you configure compression of dynamic content for IIS 6.0.

Screenshot

Would you like to compress dynamic content?
If you would like IIS 6.0 to compress responses to requests for dynamic content, then choose "Yes," otherwise, choose "No."

Choose the level of compression
Higher compression levels generally result in smaller compressed files but with higher CPU and memory usage. Lower compression levels produce slightly larger compressed files, but with lower overall impact on CPU and memory resources. We recommend using Level 6 to maximize compression while minimizing CPU and memory usage.

Compress files with these file name extensions
IIS 6.0 will only compress dynamic files with the specified file extensions. If this list is empty, no dynamic files will be compressed.

To configure the file extensions, click on the "Configure" button.

Screenshot

To enable a file extension, click on the desired file extension, then click on the "Supported" column. A drop-list will appear, then choose "Yes" to enable the file extension or "No" to disable it.

If a file extension that you would like to enable does not appear in the list, click the "Add" button enter the desired extension in the pop-up dialog, then click "OK."

When all changes are complete on the file extensions dialog, click "OK" to accept the changes and dismiss the dialog. Click "Cancel" to dismiss the dialog without accepting the changes.

Virtual Servers
The selected virtual servers in this list will be enabled to compress dynamic content. To select multiple virtual servers, hold down the "Ctrl" button while clicking on the desired virtual server names.

back to top

Command Line Interface

The ZipEnable command line interface allows one to easily configure compression and browser exclusions.

USAGE: ZECmd.exe ACTION OPTIONS


ACTION:

-Compress : Enable compression
-NoCompress : Disable compression


OPTIONS:

-Static or -S
This flag specifies that the compression action being taken should be done for static compression.
Example:
zecmd.exe -Compress -Static

-Dynamic or -D
This flag specifies that the compression action being taken should be done for dynamic compression.
Example:
zecmd.exe -Compress -Dynamic

-All or -A
This flag specifies that the compression action being taken should be done for both static and dynamic compression.
Example:
zecmd.exe -Compress -All

-StaticExt FileExts
It specifies the file extensions to be added to (or removed from) the static file extension list. FileExts should be a comma separated list of file extensions with no spaces.
Example:
zecmd.exe -Compress -StaticExt htm,html

-DynamicExt FileExts
It specifies the file extensions to be added to (or removed from) the dynamic file extension list. FileExts should be a comma separated list of file extensions with no spaces.
Example:
zecmd.exe -Compress -DynamicExt asp,aspx

-Site SiteNum [-P Path]
This flag specifies that the compression action should be taken at the site level for the specified SiteNum (virtual server ID). SiteNum should be the numerical value of the virtual server ID (i.e. 1 or 99). If SiteNum is an asterisk (*), it means all sites. The -P flag is optional. It specifies that the compression action should be done for the specified Path for the specified SiteNum.
Examples:
zecmd.exe -NoCompress -Dynamic -Site 17346739
zecmd.exe -Compress -Static -Site 1 -Path /scripts

-Browser UAString ExtList
This flag allows you to enable or disable browsers for certain User-Agent wildcard / file extension pairs.
UAMatchString should be a wildcard match for a User-Agent request header value. An asterisk may be used to represent any number of characters (i.e. 0 or more) and a question mark may be used to represent any single character. If your User-Agent wildcard match string contains spaces, be sure to enclose the entire string in double quotes (i.e. \"My Ma?ch String\"). If you append an exclamation point (!) and a second wildcard match, the User-Agent will be allowed to receive compressed content. For example, \"Mozilla/4*!*MSIE*\" will exclude user agents that begin with \"Mozilla/4\" unless it contains MSIE.
ExtList should be a comma separated list of file extensions. If ExtList is an asterisk (*), it means all file extensions.
Examples:
zecmd.exe -NoCompress -Browser "Mozilla/4*!*MSIE*" "wks,xls"
zecmd.exe -NoCompress -Browser "*Mac_PowerPC*" *

-H or -Help or -?
Show help listing on screen.

back to top
System Requirements

  • Microsoft Windows Server 2003
  • Microsoft Internet Information Services 6.0 (IIS 6.0)
back to top


Microsoft Certified Partner Logo
Port80 Software
5252 Balboa Ave, Suite 707 San Diego, CA 92117
858.268.7960 tel | 858.268.7760 fax | 888.4PORT80 toll free
info@port80software.com