Text configuration file format

Helicon Jet uses text configuration files to store its settings. You may edit these files manually using text editor. This is especially useful for manual installations of Helicon Jet or in a shared hosting environment.

Configuration file should have the same filename as ISAPI filter DLL file but with .ini file extension ( by default it is HeliconJet.ini ) and should be placed in the same directory near the DLL file or in the .helicon directory under the web site root folder.

Following section will describe configuration directives and file format:

Common settings for Helicon Jet registration (web site):

RegistrationName =
RegistrationCode =

Put your registration name and code after these directives to unlock trial mode. This is done automatically when you press Register button in the GUI module.

NotifyOrder = [MEDIUM | HIGH | LOW]

Optional ISAPI filter notification order. Possible values are MEDIUM, HIGH and LOW. IIS restart is required after changing this parameter to reload ISAPI filter with a different order.

MaxCacheSize = [size in megabytes]

Server-side cache directory size in megabytes. If cache directory size comes close to this amount garbage collector algorithm will start clear cache by removing rarely used data, ensuring that most loaded pages are always cached.

MinFileSize = [size in bytes]

Compress only files greater than specified amount of bytes. Default value 0 means no minimum file size limitation.

MaxFileSize = [size in kilobytes]

Compress only files smaller than specified amount of kilobytes. Default value 0 means no maximum file size limitation.

FileCacheDirectory = [directory name]

Absolute or relative path to the directory, where Helicon Jet will save cache files. Relative path is calculated from the location where .ini configuration file is loaded.

ProxyRequests = [ disable | enable ]

Compression of requests made through proxy server is disabled by default to solve compatibility issues with some proxy servers. This directive can be used to enable this kind of compression.

AppendQuerystring = [ disable | enable ]

This controls whether to include query string parameters in unique identifying files in the cache or not. Default value is “disabled”. Enabling this parameter may allow you to cache dynamic pages of your site if query string parameters used as a key for the content of the page. Please read “Dynamic and static content” chapter.


Rest of the configuration file consists of sections describing a configuration settings scope:

[ Defaults | User-Agent: pattern | URL: pattern ]

[Defaults]

This section is used to override default compression settings for different MIME types and file extensions. Section can contain set of lines with the following format:

Extension:ext Level:[num 0-9] [Cache] [Expire:num in seconds]

or

MIME:pattern Level:[num 0-9] [Cache] [Expire:num in seconds]

Extension:ext

Configures compression settings for a specific file extension.

MIME:pattern

Configures compression settings for a specific response MIME type or set of types that matches a pattern.

Possible settings:

Level:
Number from 0 to 9. 0 means compression is disabled. 9 means maximum compression ratio.

Cache
If this parameter is included cache is enabled, otherwise cache is disabled.

Expire:
Optional cache files expiration timeout in seconds. Useful only for dynamic content compression.

Examples:

Extension:asp Level:6 Cache Expire:3600

Enables compression of .asp files, setting compression level to 6, enables caching of compressed files with automatic content expiration within a one hour (3600 sec).

MIME:image/* Level:0

Disables compression and caching for all image response types.

[User-Agent: pattern]

This section specifies settings for a specific User-Agent or set of user agents that matches a pattern. Pattern can be of a normal wildcard text or @regex format to match possible User-Agent: HTTP header values. The content of this section is the same as for [Defaults] section but settings within this section will be applied only for specific User-Agents. Despite all settings are available to configure currently it is only useful to specify here some exceptions to address User-Agents incompatibilities.

Examples:

[User-Agent:@.*Opera]
Extension:asp Level:5 Cache

The above enables .asp files compressions only for the Opera browser, and enables server-side cache for these files.

[URL:pattern]

In this section you can configure compression settings for a specific directory, file, web site root or any other site location that matches a pattern. At least one [URL:pattern] section should be present in configuration file to enable compression for some location because by default compression is not enabled for any location. Helicon Jet GUI will automatically place [URL:/] section to the configuration file when you enable Helicon Jet for specific web site which will enable compression for a site root and thus for entire web site. Possible content of this section is the lines of the following format:

Static | Dynamic Level:[num 0-9] [Cache] [Expire:num in seconds]

Static or Dynamic specifies different settings for a static or dynamic content.

Level:[num 0-9]
Level here means a relative, not absolute compression level (processor utilization policy). Relative means that each response type or request will have it’s own compression level based on a specific content type settings, but in relation to the URL section settings value. 0 means 0% (no compression) and 9 means 100% of the compression level possible to apply to this content.

Cache
If this parameter is present it makes possible of caching files within this location. Final decision whether to cache content or not and for how long to store it in cache will be made based on a number of different conditions, including file extension, MIME type, User-Agent specific settings and HTTP headers values.

Expire: [num in seconds]
Set a maximum time period for which files will be stored in cache. This parameter is only useful for dynamic content caching.

Examples:


[URL:@.*folder.*]
Static Level:10 Cache
Dynamic Level:6 Cache Expire:120

Enables static and dynamic compression for any request containing “folder” string. Dynamic cache will be renewed every 2 minutes.

[URL:/]
Static Level:9 Cache
Dynamic Level:9

Enables static and dynamic compression for entire web site on a maximum allowed level and without dynamic content caching. This is a default settings for Helicon Jet that works safe and effectively for most configurations.

[Cache-Control]

In this section you can specify a client-side cache control directives that will be used to form Cache-Control and other caching instructions in the server response enabling client to cache the content. For more information please read Cache-Control section of the documentation.

This section can contain lines of the following format:

Path|MIME pattern [GMT date | relative date ] [ public | private | nocache ]

Path
Specify settings for a URL path that matches a pattern.

MIME
Configure settings for specific response Content-Type that matches a pattern.

pattern
Wildcard or regular expression pattern.

GMT date
Absolute content expiration date in GMT format

Relative date
Relative content expiration period in the human readable format. Supported keywords: year(s), month(s), week(s), day(s), minute(s) and second(s) separated by a space, comma or ‘and’ word, followed by a keyword after and one of two point keywords – access or modification.

public
T the content cache considered as public. Proxy servers and other intermediate level applications may store this content in their cache to return it for a different customer requests.

private
This cache type indicates that content is intended for this user eyes only and thus should be stored only in a user’s local cache.

no-cache
disables caching for this content and marks it as already expired. The expiration date for no-cache rules is ignored.

Examples:

Path /images 10 days after access public

Allow client side caching of images folder content and set its expiration to the 10 hours after access.

MIME text/* Thu, 01 May 2010 12:00:01 GMT private

Allow only private client side caching of any text/* content on the web site ans set its expiration to some future date.