WSGI module 0.0.6

I’m pleased to announce the release of the WSGI module for nginx,
version 0.0.6.

The WSGI module is an implementation of the Python Web Server Gateway
Interface v1.0 (PEP 333 – Python Web Server Gateway Interface v1.0 | peps.python.org) for the Nginx
server.

The module is available only via a Mercurial repository at:
http://hg.mperillo.ath.cx/nginx/mod_wsgi/

Here is a changelog:

  • Bug fix: configuration problem on Mac OS X.

  • Added support for nginx 0.5.34, and dropped support for older
    versions.

    Note: older version are only supported via patches.

  • Added wsgi_optimize_send_headers directive.

    WSGI spec requires that the headers must be sent when the first
    not empty string is yielded, however sending headers early can
    optimize content generation.

  • Added experimental support for interpreter finalization.

    This will ensure that sys.exitfunc is called.

  • Variables declared with wsgi_var directive can override HTTP_
    variables.

    It can be useful, as an example, to override HTTP_COOKIE with:

    wsgi_var HTTP_COOKIE $http_cookie;

    since the $http_cookie variable combines multiple Cookie headers.

  • Renamed the wsgi_params directive to wsgi_var.

    wsgi_param was a poor choice, since parameters are a concept used
    by FastCGI.

    This revision breaks compatibility.

  • Added the wsgi_allow_ranges directive, for integrated support to
    partial HTTP requests.

  • Added the ngx_wsgitest.py script, that executes a WSGI application
    in a testing environment.

  • Added the ngx_wsgiref.py script, that runs a WSGI application
    using the builtin wsgiref server, with a command line compatibile
    with ngx_wsgi.py.

  • Added the ngx_wsgi.py script, for rapid deployment of WSGI
    applications using nginx and mod_wsgi.

  • Added wsgi_middleware directive.

    This directive enables middleware stacking in mod_wsgi.

  • Removed the callable_object and the wsgi_alias directives, and
    added a new wsgi_pass directive.

    The new directive is more consistent with other nginx modules like
    mod_fastcgi and mod_proxy.

    This revision breaks compatibility.

Manlio P.