小编Dan*_*iel的帖子

使用 NGINX 对 PHP 脚本进行多个同时请求

我有一个运行 NGINX 和 PHP 的网络服务器,有一个非常基本的多客户端测试。

<?php
    if(isset($_GET['query'])) {
        echo "HELLO MY NAME IS WEBSERVER";
    }
    if(isset($_GET['sleep'])) {
        sleep(10);
    }
?>
Run Code Online (Sandbox Code Playgroud)

如果我运行http://servername.com/index.php?query,我会得到即时响应。

如果我同时运行 ?sleep 然后 ?query,则 ?query 似乎会排队直到 ?sleep 完成。

这种情况发生在多个客户端上。客户端A可以请求?sleep,这会影响客户端B的?query请求。客户端 B 是一台完全不同的机器。

有没有任何方法可以调整 php.ini 或我的 nginx 配置以允许生成单独的 php 工作进程(或类似的东西?)

编辑:对于一些背景知识,这是我的配置。

nginx.conf:

    location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9123;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
    }
Run Code Online (Sandbox Code Playgroud)

fastgci_params:

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param …
Run Code Online (Sandbox Code Playgroud)

php nginx

3
推荐指数
1
解决办法
5598
查看次数

标签 统计

nginx ×1

php ×1