如何检查是否FastCGI的服务器是活的,正常运行而不仅仅是做一个TCP连接?
我有一些远程的,独立的FastCGI的服务器。 我要监控的FastCGI的服务器本身,以确保其活着。 简单地使Web服务器的请求是不够的,因为它会围绕一个死服务器自动路由。
谢谢!
如何检查是否FastCGI的服务器是活的,正常运行而不仅仅是做一个TCP连接?
我有一些远程的,独立的FastCGI的服务器。 我要监控的FastCGI的服务器本身,以确保其活着。 简单地使Web服务器的请求是不够的,因为它会围绕一个死服务器自动路由。
谢谢!
您可以使用自带的CGI-FCGI程序FastCGI开发工具包 。 在Debian类系统,和在MacPorts的,节目附带libfcgi包。
我与CGI-FCGI调用脚本在发表http://gist.github.com/209446
您可以连接到服务器的FastCGI并发送控制FCGI_GET_VALUES
空请求。 应该通过FastCGI的服务器支持,官方libfcgi应该支持。
见http://www.fastcgi.com/devkit/doc/fcgi-spec.html
发送到Socket以下几点:
unsigned char buf[16] = { 1,9,0,0 ,0,0,8,0 , 0,0,0,0, 0,0,0,0};
// fcgi protocols = 1
// fcgi_get_values = 9
// padding = 8 -- for some reason libfcgi expects non-empty body
// body -- empty 8 bytes.
你应该得到
unsigned char buf[8] = { 1, 10,0,0, 0,0,0,0 };
// fcgi_protocol = 1
// fcgi_get_values_response = 10
你实际上应该赤你得到10响应。