Re: Как nginx обрабатывает fastcgi запросы

Peter Leonov gojpeg на gmail.com
Сб Авг 28 14:59:34 MSD 2010


Здравствуйте,

On 28.08.2010, at 2:16, ruslan usifov <ruslan.usifov на gmail.com> wrote:

> Написал простейшее fcgi приложение, запускаеться так spawn-fcgi -s / 
> tmp/python-fcgi.sock -u www -g www -n -- /usr/local/bin/python /root 
> /test.py
>
> import fastcgi;
> import time;
>
> def myapp(environ, start_response):
>   write = start_response('200 OK', [('Content-Type', 'text/html;  
> charset=utf-8')]);
>   lines = [];
>
>   time.sleep(30);
>
>   for k, v in environ.iteritems():
>     lines.append("<b>%s</b>: %s<br />\n" % (k, v));
>
>   return lines;
>
> s = fastcgi.ForkingWSGIServer(myapp, 5);
> s.serve_forever();
>
> И запустил 6 параллельных запросов (http://app.test/), и с удивление 
> м обнаружил accept в fastcgi сервере не был вызван одноврменно 6 раз 
> , а был выполнен строго последовательно. Т.е запросы ушли параллельн 
> о а accepts выполнились один за другим в результате последний 6-й за 
> прос выполнялся не 30 секунд и 30*6 секунд. Собственно говоря вопрос 
>  почему так происходит?
Таки потому, что вы запустили только один процесс со скриптом.

Выполните строку с spawn-cgi несколько раз и увидите параллельность.

> Проверял apache mod_fastcgi поступает точно также.
>
> Конфигурация nginx такая:
>
>     server
>     {
>         listen 80;
>         server_name app.test;
>
>         location /
>         {
>             fastcgi_pass unix:/tmp/python-fcgi.sock;
>             include      fastcgi_params;
>         }
>     }
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru
----------- следущая часть -----------
Вложение в формате HTML было извлечено&hellip;
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20100828/565060fb/attachment.html>


Подробная информация о списке рассылки nginx-ru