2009-08-19 2 views
2

Как проверить, жив ли сервер FastCGI и работает ли он нормально, за исключением только соединения TCP?Как выполнить ping-сервер FastCGI?

У меня есть несколько удаленных автономных серверов FastCGI. Я хочу контролировать сам сервер FastCGI, чтобы обеспечить его жизнь. Просто сделать запрос веб-сервера недостаточно, так как он автоматически маршрутизирует вокруг мертвого сервера.

Спасибо!

ответ

2

Вы можете использовать программу cgi-fcgi, которая поставляется с FastCGI development kit. В Debian-подобных системах и в macports программа входит в пакет libfcgi.

Мой сценарий с CGI-FCGI вызова опубликована на http://gist.github.com/209446

+0

Отлично, спасибо! – Schwern

1

Вы можете подключиться к серверу FastCGI и отправить управление FCGI_GET_VALUES пустым запросом. Он должен поддерживаться сервером fastcgi, официальный libfcgi должен его поддерживать.

См http://www.fastcgi.com/devkit/doc/fcgi-spec.html

Отправить на Лепи следующее:

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

+0

Добавлен простой пример реализации – Artyom

+0

Спасибо за объяснение. – Schwern