mod_wsgi如何实际工作?

时间:2015-03-15 15:41:35

标签: python multithreading mod-wsgi wsgi

我对mod_wsgi中的多个线程感到困惑,即使在阅读了这个document

之后

主要问题是,mod_wsgi如何调用我的python脚本?

为了使我的问题清楚,我将在下面提出问题

假设我的服务器配置如下:

WSGIDaemonProcess XXX.com processes=12 threads=20 display-name=%{GROUP}

WSGIProcessGroup XXX.com

WSGIScriptAlias /sign /XXX/Http/upload.wsgi

我正在使用prefork MPM

我的/XXX/Http/upload.wsgi看起来像这样

class app(object):

def __init__(self):
    pass

def __call__(self, environ, start_response):
    temp_unsign = tempfile.mkdtemp()
    temp_signed = tempfile.mkdtemp()

    try:
        response_headers = [('Content-type', 'text/plain;charset=UTF-8'),('Content-Length', str(len('123')))]
        status = '200 OK'
        start_response(status, response_headers)

        return ['123']
    finally:
        shutil.rmtree(temp_unsign)
        shutil.rmtree(temp_signed)

application = app()

我的问题是:

  1. 如果同时有来自不同IP的5个请求,那么会有多少app个实例?一个例子?或者每个请求一个实例
  2. 如果同时有来自同一IP和同一台计算机的5个请求怎么办?
  3. 是否所有5个__call__方法都在5个不同的线程中运行?
  4. 我问这个是因为执行No such directory时我总是收到错误shutil.rmtree

    当然,我无法理解mod_wsgi如何在多线程中实际工作

0 个答案:

没有答案