2014-09-02 2 views
2

Вы могли бы быть так добры и помочь мне с проблемой?Apache + mod_wsgi - параллельные запросы от одного и того же браузера

Я бегу Apache 2.2.22 с mod_wsgi

Я настроил WSGI правильно работать с несколькими потоками и я использую Python мне нужно обрабатывать параллельные запросы от того же браузера, но только параллельно запрос WSGI может служить это те, которые поступают из разных браузеров (или 1 вкладка браузера + 1 вкладка в инкогнито).

Я пробовал как встроенный, так и демон.

конфигурации

Apache:

WSGIDaemonProcess appname processes=5 threads=25 display-name=%{GROUP} 
WSGIProcessGroup appname 

WSGIScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 

<Directory "/usr/lib/cgi-bin"> 
    AllowOverride None 
    AddHandler wsgi-script .py 
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
    #Require all granted 
</Directory> 

Я положил wsgi.py в/USR/Lib/CGI-BIN каталога с 755 мод

содержание wsgi.py:

import os, sys 
import time 
from datetime import datetime 

def application(environ, start_response): 

    sys.stderr.write("before wait time = %s\n" % str(datetime.now())) 
    sys.stderr.write("client= %s\n" % environ['REMOTE_ADDR']) 
    sys.stderr.write("waiting\n") 
    print >> sys.stderr, 'mod_wsgi.process_group = %s' % repr(environ['mod_wsgi.process_group']) 
    time.sleep(10) 
    sys.stderr.write("wait finished time = %s\n" % str(datetime.now())) 
    status = '200 OK' 
    output = 'Hello World!' 

    response_headers = [('Content-type', 'text/plain'), 
        ('Content-Length', str(len(output)))] 
    start_response(status, response_headers) 

    return [output] 

Когда я запрашиваю http://my.ip/cgi-bin/wsgi.py, я получаю все хорошо, но когда я запускаю его параллельно на 2 вкладках одного браузера, вторая вкладка ждет завершения первого ... журналы:

[Tue Sep 02 18:25:06 2014] [error] before wait time = 2014-09-02 18:25:06.365133 
[Tue Sep 02 18:25:06 2014] [error] client= 192.168.113.35 
[Tue Sep 02 18:25:06 2014] [error] waiting 
[Tue Sep 02 18:25:06 2014] [error] mod_wsgi.process_group = 'appname' 
[Tue Sep 02 18:25:16 2014] [error] wait finished time = 2014-09-02 18:25:16.371944 
[Tue Sep 02 18:25:16 2014] [error] before wait time = 2014-09-02 18:25:16.390348 
[Tue Sep 02 18:25:16 2014] [error] client= 192.168.113.35 
[Tue Sep 02 18:25:16 2014] [error] waiting 
[Tue Sep 02 18:25:16 2014] [error] mod_wsgi.process_group = 'appname' 
[Tue Sep 02 18:25:26 2014] [error] wait finished time = 2014-09-02 18:25:26.400464 

ответ

0

Я не удивлюсь, если это связано с переходом браузера на открытые соединения с сервером для отправки последующих запросов. Если он открывает новое соединение для запроса, отправленного с вкладки инкогнито, что позволит обрабатывать отдельный поток на сервере; что это работает правильно, показывает, что ваша настройка WSGI в основном в порядке.

Смежные вопросы