2009-08-19 73 views
2

如何检查FastCGI服务器是否存活并正常运行,而不仅仅是建立TCP连接?如何ping一个FastCGI服务器?

我有一些远程独立的FastCGI服务器。我想监视FastCGI服务器本身以确保其活着。仅仅提出Web服务器的请求是不够的,因为它会自动绕过死亡服务器。

谢谢!

回答

1

您可以连接到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响应。

+0

谢谢回答出版。有没有一个库可以用来与FastCGI服务器交谈,而不是编码说什么二进制协议? C,PHP,Ruby或Perl首选,但我会采取任何行动。 – Schwern 2009-08-30 19:03:36

+0

添加简单示例如何实施 – Artyom 2009-08-30 20:36:20

+0

感谢您的解释。 – Schwern 2009-10-17 20:51:28