[wsgi] Python interpreter initialization

Manlio Perillo manlio_perillo at libero.it
Mon Aug 20 14:51:04 MSD 2007

Igor Sysoev ha scritto:
> On Mon, Aug 20, 2007 at 12:15:26PM +0200, Manlio Perillo wrote:
>> I need some help for the development of mod_wsgi.
>> Before using the Python C API for embedding Python code, the main 
>> interpreter must be initialized by calling
>>   Py_Initialize();
>> This function set a global context.
> By the way, python is the most unsuitable language to embed in nginx - it
> has the single interpreter. That means that you could not safely reconfigure
> nginx. Even perl (unsuitable too) allows several interpreters.

Python *has* subinterpreters... (see the Apache mod_wsgi implementation 
as an example).

I'm using only the main interpreter because I want to keep the code as 
simple as possible.

As I have written, my design goal is not to write a general module like 
mod_perl (or Apache mod_wsgi), but to just use nginx to have a HTTP 
server for serving WSGI applications (with mod_perl you can set nginx 
variables, too).

I'm using nginx since it is much simpler to write a module (it is 
simpler than writing Apache modules!) than a full HTTP server from scratch).

However I'm interested in the reconfiguration problem. Can you give me 
more details?

This is not a really big problem, since the *right way* to deploy 
mod_wsgi is to use another nginx proxy server behind the nginx server 
with mod_wsgi; so I can just restart the server (and the proxy can limit 
the number of request to the wsgi nginx server).

By the way, I'm also planning to release a stripped down version of 
nginx, to be used as a stand alone server to serve WSGI applications and 
with command line support for the most used options (I can write a 
wrapper in Python that write a temporary configuration file).

Thanks and regards  Manlio Perillo

More information about the nginx mailing list