FCGI_END_REQUEST и закрытие соединения

Maxim Dounin mdounin at mdounin.ru
Thu Aug 20 18:53:03 MSD 2009


Hello!

On Thu, Aug 20, 2009 at 02:57:26PM +0100, Valery Kholodkov wrote:

> 
> ----- opium <opium at jabber.com.ua> wrote:
> > 
> > Делаю все как описано в http://www.fastcgi.com/drupal/node/6?q=node/22#S4
> > 
> > тоесть получаю запрос:
> > 
> > {FCGI_BEGIN_REQUEST,   1, {FCGI_RESPONDER, 0}}
> > {FCGI_PARAMS,          1, "\013\002SERVER_PORT80\013\016SER"}
> > {FCGI_PARAMS,          1, "VER_ADDR199.170.183.42 ... "}
> > {FCGI_PARAMS,          1, ""}
> > {FCGI_STDIN,           1, "quantity=100&item=3047936"}
> > {FCGI_STDIN,           1, ""}
> > 
> > и даю ответ:
> > 
> >      {FCGI_STDOUT,      1, "Content-type: text/html\r\n\r\n<html>\n<head>  
> > ... "}
> >      {FCGI_STDOUT,      1, ""}
> >      {FCGI_END_REQUEST, 1, {0, FCGI_REQUEST_COMPLETE}}
> > 
> > проблема в том, что пока приложение не закроет соединение -- nginx ничего
> > не отдает http клиенту. с lighttpd все ок. это так и должно быть? nginx
> > требует закрытия соединения? или ему недостаточно одного FCGI_END_REQUEST
> > и нужно слать еще чтото?
> 
> Есть подозрение, что не включен TCP_NODELAY или включен TCP_NOPUSH и nginx FCGI_END_REQUEST не получает до тех пор, пока не закроется соединение.

Нет, это неправильное подозрение.

Maxim Dounin





More information about the nginx-ru mailing list