Re: $body bytes sent всегда 0, но не в логах.

Igor Sysoev igor на sysoev.ru
Пт Май 27 17:43:59 MSD 2011


On Fri, May 27, 2011 at 04:17:24PM +0400, step wrote:
> В Птн, 27/05/2011 в 15:52 +0400, Igor Sysoev пишет:
> > > В конфиге nginx:
> > > 
> > > location ~ ^/(test_post)\.php$ {
> > >     fastcgi_pass    unix:/var/run/php-fpm.socket;
> > >     fastcgi_param
> > > SCRIPT_FILENAME  /www/server/www/$fastcgi_script_name;
> > >     fastcgi_param   BBBBBBB $body_bytes_sent;
> > >     include         /etc/nginx/fastcgi_params;
> > > }
> > > 
> > > location ~ ^/(test)\.php$ {
> > >     fastcgi_pass    unix:/var/run/php-fpm.socket;
> > >     fastcgi_param
> > > SCRIPT_FILENAME  /www/server/www/$fastcgi_script_name;
> > >     include         /etc/nginx/fastcgi_params;
> > > 
> > >     post_action /test_post.php;
> > > }
> > > 
> > > И в этом случае у меня все равно в PHP $_SERVER['BBBBBBB'] равен 0.
> > 
> > Нужен отладочный лог:
> > http://nginx.org/en/docs/debugging_log.html
> > 
> > Вместо ненужного регулярного выражения "~ ^/(test)\.php$" можно написать
> > "= /test.php". Чем меньше регулярных выражений в конфиге, тем лучше.
> > Оптимальное число - ноль.
> > 
> > 
> 
> Отладочный лог в приложении.

> 2011/05/27 16:12:37 [debug] 32512#0: *1 http script var: "/test.php"
> 2011/05/27 16:12:37 [debug] 32512#0: *1 fastcgi param:
> "SCRIPT_FILENAME: /var/www/ldap/htdocs//test.php"
> 2011/05/27 16:12:37 [debug] 32512#0: *1 http script copy: "BBBBBBB"
> 2011/05/27 16:12:37 [debug] 32512#0: *1 http script var: "0"
> 2011/05/27 16:12:37 [debug] 32512#0: *1 fastcgi param: "BBBBBBB: 0"

Лог не соответствует конфигурации -
     fastcgi_param   BBBBBBB $body_bytes_sent;
описан в обоих location'ах. Поскольку nginx часто использует закэшированные
значения переменных, то используется нулевое значение из location /test.php.


-- 
Igor Sysoev



Подробная информация о списке рассылки nginx-ru