在ubuntu 18.04上使用最小的fastcgi / nginx配置,看起来nginx一次只能处理一个fastcgi请求。
# nginx configuration
location ~ ^\.cgi$ {
# Fastcgi socket
fastcgi_pass unix:/var/run/fcgiwrap.socket;
# Fastcgi parameters, include the standard ones
include /etc/nginx/fastcgi_params;
}
我通过使用如下cgi脚本进行演示:
#!/bin/bash
echo "Content-Type: text";
echo;
echo;
sleep 5;
echo Hello world
使用curl从两个并排命令提示符访问脚本,您将看到服务器按顺序处理请求。
如何确保nginx并行处理fastcgi请求?
您可以在服务器上配置worker_processes
指令,这将允许更多进程同时处理请求。建议在"Tuning NGINX" guide中将其设置为计算机具有的CPU内核数,因此,如果您有四核处理器,则可以将其设置为4
,我想将其设置为8
具有SMT的四核处理器(有时称为超线程)也可以很好地工作。您也可以将其设置为auto
,然后让NGINX为您处理。
默认情况下,此值设置为1
,因此,如果未指定指令,则可以进行改进。您需要在nginx.conf
的顶部而不是在server {
块中进行此操作。
我敢在"Tuning NGINX" guide上说,您会看到一些有关如何进一步提高性能的指南。