IIPSRV(8) | System Manager's Manual | IIPSRV(8) |
IIPSRV - IIPImage Image Server
IIPImage is an advanced high-performance feature-rich multi-protocol image server 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 8, 16 and 32 bit depths, CIELAB colorimetric images and scientific imagery such as multispectral images. Source images can be either TIFF (tiled multi-resolution) or JPEG2000 (if enabled).
The image server can also dynamically export images in JPEG format and perform basic image processing, such as contrast adjustment, gamma control, conversion from color to greyscale, color twist, region extraction and arbitrary rescaling. The server can also export spectral point or profile data from multispectral data and apply color maps or perform hillshading rendering.
Command line use:
iipsrv.fcgi --bind host : port
iipsrv.fcgi main executable
iipsrv.log log file: usually in /var/log/ or /tmp/
There are several parameters that can be supplied to iipsrv.fcgi These should be set via the appropriate web server configuration directives if running via Apache or Lighttpd. See EXAMPLES for details of web server configuations. Alternatively these parameters can be set via environment settings if running directly from the command line or from spawn-fcgi.
iipsrv will be automatically started by both Apache and Lighttpd. But not by Nginx or Java Application Servers. See the example configuration in the README or included with your distribution for the appropriate syntax. Note that Apache has two FCGI modules: mod_fastcgi and mod_fcgid which are configured differently.
You may also wish to run iipsrv as a standalone program. To do this, use the following syntax to bind to a particular port and listen for FCGI (not HTTP) requests. In the following example, iipsrv will bind to port 9000 on the machine's IP address 192.168.0.1:
% iipsrv.fcgi --bind 192.168.0.1:9000
There is additionally a --backlog parameter that is optional and sets the socket backlog value. The backlog value specifies the number of requests can be queued and, therefore, increases the number of concurrent connections that iipsrv can handle and is set to 2048 by default. For example:
% iipsrv.fcgi --bind 192.168.0.1:9000 --backlog 1024
Note that the backlog parameter must be specified after the bind parameter and argument. Note also that this value may be limited by the operating system. On Linux kernels < 2.4.25 and Mac OS X, the backlog limit is hard-coded to 128, so any value above this will be limited to 128 by the OS. If you do provide a backlog value, verify whether the setting /proc/sys/net/core/somaxconn should be updated.
It is also possible to run via the spawn-fcgi program. Set up any parameters via environment variables and run the command as follows to bind, as in the previous example to port 9000 on IP address 192.168.0.1:
% spawn-fcgi -f src/iipsrv.fcgi -a 192.168.0.1 -p 9000
For use in stand alone or spawn-fcgi mode, you will then need to configure your webserver on the same machine or another to direct FCGI protocol requests to this IP address and port.
For web servers such as Nginx or Java Application Servers such as Tomcat, JBoss or Jetty, which cannot automatically start FCGI processes, iipsrv will need to be started in stand alone mode or via spawn-fcgi.
The IIPImage server supports the Internet Imaging Protocol (IIP) , the Zoomify protocol, the DeepZoom and the International Image Interoperability Framework (IIIF) protocols. Client applications supporting these protocols should be able to use iipsrv as their back-end server. IIP is the most feature rich of the 4 protocols and allows access to the more advanced imaging server features.
The image paths given to the server must be absolute paths on the server machine (eg. via the FIF variable for the IIP protocol: FIF=/images/test.tif) and not paths relative to the web server document root location. If the FILESYSTEM_PREFIX server directive has been set (see OPTIONS above), then this prefix is automatically pre-pended to all requests to generate the absolute image path. Make sure that the server process owner is able to access and read the images.
Note that images do not need to be directly accessible externally by the client via the web server.
IIPImage website: http://iipimage.sourceforge.net
Ruven Pillay <ruven@users.sourceforge.net>
February 2016 | Ruven Pillay |