IIPImage is an advanced high-performance feature-rich imaging server system for web-based streamed viewing and zooming of ultra high-resolution images. It is designed to be fast and bandwidth-efficient with low processor and memory requirements. The system can comfortably handle gigapixel size images as well as advanced image features such as both 8 and 16 bit depths, CIELAB colorimetric images and scientific imagery such as multispectral images.


The iipsrv.fcgi binary can be run as a standalone program or can be automatically started via a web server. This package includes configuration files for both Apache and Lighttpd that are automatically installed and configured if either of these are installed. See FILES bellow for details.


The iipsrv.fcgi binary is installed in /usr/lib/cgi-bin/iipsrv.fcgi

If you have Apache installed, make sure you have mod_fastcgi installed. The iipsrv configuration file is automatically placed in /etc/apache2/conf.d/iipsrv.conf

For Lighttpd, the configuration file is automatically placed in /etc/lighttpd/conf-enabled/iipsrv.conf

You can edit the parameters in these configuration files. See OPTIONS bellow for more details. If you modify any parameters, make sure you restart your web server for them to take effect.


iipsrv will be automatically started by both Apache and Lighttpd. If you wish to run as a standalone program, use the following syntax to bind to a particular port:

% /usr/lib/cgi-bin/iipsrv.fcgi --bind localhost:9000

You will then need to configure your webserver on the same machine or another to point to this ip address and port. Use this method for use with Nginx or Java Application Servers such as Tomcat, JBoss or Jetty


There are several parameters that can be supplied to iipsrv.fcgi


The log file the module will (attempt) to write to. If no value is given, no log will be written. Make sure the server process has write access to this directory. Paths with spaces in them may not work correctly.


The level of logging. 0 means no logging, 1 is minimal logging, 2 lots of debugging stuff and 3 even more debugging stuff and 4 a very large amount indeed. Logging is only enabled if LOGFILE has also been defined.


The default JPEG quality factor for compression when the client does not specify one. The value should be between 1 (highest level of compression) and 100 (highest image quality). The default is 75.


Max image cache size to be held in RAM in MB. This is a cache of the compressed JPEG image tiles requested by the client. The default is 5MB.


This is a prefix automatically added by the server to the beginning of each file system path. This can be useful for security reasons to limit access to certain sub-directories. For example, with a prefix of "/home/images/" set on the server, a request by a client for "image.tif" will point to the path "/home/images/image.tif". Any reverse directory path component such as ../ is also filtered out. No default value.


The maximum permitted image pixel size returned by the CVT command in conjunction with WID or HEI or RGN. The default is 5000. This prevents huge requests from overloading the server


The number of quality layers to decode for image that support progressive quality encoding, such as JPEG2000. Ignored for other file formats. The default is 1.


TIFF image to use as watermark file. This image should be not be bigger the tile size used for TIFF tiling. If bigger, it will simply be cropped to the tile size. If smaller, the watermark will be positioned randomly within the available space. The image can be either colour or grayscale.


The probability that a particilar tile will have a watermark applied to it. 0 means never, 1 means always.


The opacity (between 0 and 1) applied to the watermark image.


A comma-delimitted list of memcached servers with optional port numbers. For example: localhost,,


Time in seconds that cache remains fresh. Default is 86400 seconds (24 hours).


Pattern that follows the name stem for a panoramic image sequence. eg: "_pyr_" for FZ1_pyr_000_090.tif. In this example, just supply FZ1 to the FIF command. The "000" indicates the vertical angle and "090" the horizontal. This is only relevant to 3D image sequences. The default is "_pyr_".


The image paths given to the server via the FIF variable must be absolute paths on the server machine (eg. FIF=/images/test.tif) and not paths relative to the web server document root location. Images do not, therefore, need to be directly accessible by the client via the web server. Make sure the server process owner is able to access and read the images!

RELATED TO iipsrv…

IIPImage website:


Ruven Pillay <[email protected]>