根据我对SCGI规范的理解,SCGI服务器一次只能处理一个请求。SCGI服务器一次只能处理一个请求是真的吗?
如何解决这个限制,以便使用SCGI服务的web应用程序能够一次处理多个请求?
我想过要启动多台SCGI服务器。例如,如果我启动两个分别在127.0.0.1:8000和127.0.0.1:8001上侦听的SCGI服务器,我可以像这样配置NGINX服务器:
upstream myservers {
server 127.0.0.1:8080;
server 127.0.0.1:8001;
}
location / {
include /etc/nginx/scgi_params;
scgi_pass myservers;
}这种方法实际上允许我的web应用程序一次提供多个请求吗?
发布于 2022-02-22 13:08:51
如果SCGI服务器本身一次能够处理多个请求,则不必启动多个SCGI服务器一次处理多个请求。
例如,使用分叉或预分叉服务器模型的SCGI服务器一次能够处理多个请求。在分叉服务器模型中,每次服务器接受连接时,它都会分叉一个子节点来处理连接,然后返回到接受更多连接。在预分叉服务器模型中,服务器在服务器启动时分叉几个子服务器.所有这些子程序都会阻塞accept()系统调用,直到请求到达为止。当请求到达时,操作系统将解除其中一个accept()的阻塞,让一个子程序处理该请求。当这个子程序正在处理请求时,其他的子程序仍然阻塞他们的accept(),准备接受其他请求。
https://stackoverflow.com/questions/69686638
复制相似问题