Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > nginx + php-cgi в многопоточном режиме


Автор: Coder 9.11.2009, 09:11
Всем  доброго времени суток! Начал разбираться с nginx, все великолепно в плане его возможностей, но вот возник вопрос по связке с php -   как сконфигурировать nginx/php-cgi для работы последнего в многопоточном режиме?

Есть два PHP скрипта:

Код

<?php
    sleep(10);
    echo "Test 1";
?>


Код

<?php
    echo rand(0,1000);
?>


Если запустить первый в браузере и в это время попытаться выполнить второй, то он не запуститься пока не пройдет 10 секунд ожидания. Т.е. php-cgi (под Windows) обслуживает только одного клиента.

Конфигурация nginx

Код

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;
        
        set  $root_for_cgi     "C:/nginx-0.8.21/html/";

        location / {
            root   html;
            index  index.php index.html index.htm;
        }

        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:521;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $root_for_cgi$fastcgi_script_name;
            include        fastcgi_params;
        }

        location ~ /\.ht {
            deny  all;
        }
    }
}


php-cgi.exe запускаю из командной строки так
Код

php-cgi.exe -b 127.0.0.1:521

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)