我正在使用Nginx作为Web服务器在C#/ Mono中编写一个FastCGI应用程序接口库,在普通的Linux机器(Vagrant和/或EC2)上运行。我正在努力使我的实施符合FastCGI 1.0 spec。因此,我准备接收FCGI_GET_VALUES记录,并使用FCGI_GET_VALUES_RESULT进行响应。但是,我的经验是Nginx FastCGI没有发送这个。所以,我想回答的问题是:
(1)好的,Web服务器不是必需发送FCGI_GET_VALUES,它是可选的。那么,它已经不再使用了吗?其他FastCGI服务器实现是否仍然使用此功能?有没有办法配置Nginx FastCGI来启用它?
(2)三个定义的配置值返回到FCGI_GET_VALUES_RESULT记录中的Web服务器:应用程序将接受的最大并发传输连接;应用程序将接受的最大并发请求数;应用程序是否多路复用连接。缺少FCGI_GET_VALUES,有哪些替代方法(如果有的话)与这些设置通信或配置Nginx的FastCGI模块?
答案 0 :(得分:1)
1)我最近搜索了一个支持FastCGI管理消息的开源Web服务器。我很快就浏览了几个源代码,包括nginx。唯一看起来像是有代码发送FCGI_GET_VALUES的是OpenLiteSpeed。在放弃使用FastCGI之前,我还没有完成测试,我很害怕,并且它看起来并没有真正关注它收到的值。
2)我将逐一介绍我对每个参数的了解:
FCGI_MAX_CONNS:不要认为有任何方法可以在nginx中直接指定它。也许你可以用http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html
做点什么OpenLiteSpeed可以选择限制与fastcgi服务器的连接数。
FCGI_MPXS_CONNS和FCGI_MAX_REQS:nginx不支持通过单个连接复用FastCGI。我找不到一个能够做到的网络服务器。
作为参考,我浏览了这些Web服务器的源代码,但它们都不像是发送FCGI_GET_VALUES:
apache2(mod_fastcgi,mod_fcgi,mod_proxy_fcgi),caudium,monkey,hiawatha,jetty,lighttpd,nginx,cherokee
其中一些确实处理了FCGI_GET_VALUES_RESULT。