5 messages in ru.sysoev.nginx[ANN] mod_wsgi draft
FromSent OnAttachments
Manlio PerilloSep 15, 2007 9:33 am 
Adrian Perez de CastroSep 15, 2007 11:21 am 
Manlio PerilloSep 15, 2007 11:40 am 
Adrian Perez de CastroSep 16, 2007 1:55 pm 
Manlio PerilloSep 18, 2007 10:39 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:[ANN] mod_wsgi draftActions...
From:Manlio Perillo (manl@public.gmane.org)
Date:Sep 15, 2007 9:33:04 am
List:ru.sysoev.nginx

Hi all.

I'm pleased to announce the availability of the first working draft of the wsgi module for nginx.

The code is available as a Mercurial repository: http://hg.mperillo.ath.cx/nginx/mod_wsgi/

It is possible to download a snapshot in gzip format: http://hg.mperillo.ath.cx/nginx/mod_wsgi/archive/tip.tar.gz

There is still a lot of work to do and the current implementation has some limitations (some for design choices, others for keeping the implementation as simple as possible):

1) I have implemented the WSGI 2.0 draft (http://wsgi.org/wsgi/WSGI_2.0) 2) "app_iter" must produce only one item 3) Exceptions are not logged 4) Only one WSGI app can be executed, for a given nginx instance 5) SCRIPT_NAME e PATH_INFO environment variables are not supported (I have asked for help some messages ago)

IMPORTANT: Since the WSGI application is executed in the nginx process cycle, it can block the entire server.

The documentation is still missing, but you can use the documentation that came with Apache mod_wsgi: http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives

nginx mod_wsgi additionally supports the directive "wsgi_param", similar to fastcgi_param: http://wiki.codemongers.com/NginxHttpFcgiModule#fastcgi_param

In conf/wsgi_params there are defined tha params required by WSGI.

In example/ there is a small example

To compile nginx, it suffice to do something like: ./configure --add-module=/home/manlio/projects/hg/nginx/mod_wsgi/ \ --with-debug make make install

from the main directory of the nginx sources (I'm using version 0.5.31).

By default nginx is installed in /usr/local/nginx, I suggest to choose as --prefix path a directory where you have write access as a limited user, so you can install and execute nginx withoud being root.

I would like to thank Igor Sysoev for having released nginx with an Open Source license, and for having written such a good code (although I would like to see more documentation :-)).

Many thanks to Evan Miller for his Guide To Nginx Module Development.

And many thanks to Graham Dumpleton (the author of the WSGI module implementation for Apache) since his module has been an invaluable resource for me.