[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