我有一个运行 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)