и все равно не работает nginx-0.7.44 + drupal 6.10 с try_files

Maxim Dounin mdounin at mdounin.ru
Tue Mar 24 20:25:55 MSK 2009


Hello!

On Tue, Mar 24, 2009 at 07:15:17PM +0300, Andrei Nigmatulin wrote:

> On Tuesday 24 March 2009 18:25, Maxim Dounin wrote:
> > Hello!
> >
> > On Tue, Mar 24, 2009 at 05:37:10PM +0300, Andrei Nigmatulin wrote:
> > > On Tuesday 24 March 2009 17:09, Maxim Dounin wrote:
> > > > Hello!
> > > >
> > > > On Tue, Mar 24, 2009 at 04:34:28PM +0300, Andrei Nigmatulin wrote:
> > > > > On Tuesday 24 March 2009 15:44, Igor Sysoev wrote:
> > > > > > On Tue, Mar 24, 2009 at 03:31:49PM +0300, Andrei Nigmatulin wrote:
> > > > > > > > > 2009/03/24 14:15:37 [debug] 7764#0: *1 http script copy:
> > > > > > > > > "QUERY_STRING" 2009/03/24 14:15:37 [debug] 7764#0: *1 http
> > > > > > > > > script copy: "q=" 2009/03/24 14:15:37 [debug] 7764#0: *1 http
> > > > > > > > > script var:
> > > > > > > > > "/admin/reports/status/run-cron?destination=admin/reports/sta
> > > > > > > > >tus" 2009/03/24 14:15:37 [debug] 7764#0: *1 fastcgi param:
> > > > > > > > > "QUERY_STRING:
> > > > > > > > > q=/admin/reports/status/run-cron?destination=admin/reports/st
> > > > > > > > >atus "
> > > > > > > >
> > > > > > > > Надо убрать из
> > > > > > > >
> > > > > > > >     include        /etc/nginx/fastcgi_params;
> > > > > > > >
> > > > > > > > строку про QUERY_STRING.
> > > > > > >
> > > > > > > А смысл, если все равно используется последняя ?
> > > > > >
> > > > > > Это точно известно ?
> > > > >
> > > > > У меня на 0.6.x работает именно так.
> > > >
> > > > Это не зависит от nginx'а, это зависит от fastcgi приложения.  Сам
> > > > nginx просто передаст несколько name-value pairs с одинаковым
> > > > именем.
> > >
> > > Понятно. В php это не используется. Каждое последующее значение с тем же
> > > именем замещает предыдущее.
> >
> > Насколько я вижу - hash появился в
> >
> > http://cvs.php.net/viewvc.cgi/php-src/sapi/cgi/fastcgi.c?r1=1.15&r2=1.16&
> >
> > и с тех пор помержен в 5.2, но не в 5.1.  До соответствующего
> > изменения - брался первый из параметров.  Что именно происходило в
> > php4 - даже и смотреть не хочу, и так понятно что поведение
> > зависит от версии php и закладываться на него нельзя.
> 
> Все правильно, бардак имеется. Но камни в огород php я бы не стал кидать: до 
> 5.2 использовался код стандартной libfcgi, которую кстати, насколько я 
> вкурсе, писали те же ребята, что и спецификацию протокола на fatscgi.com. В 
> ней тоже берется первое значение из присланных. И библиотечными методами 
> нельзя получить другие значения с таким же именем.

Я не кидаю камни в php, я просто констатирую факт: твоё 
утверждение про "каждое последующее значение с тем же именем 
замещает предыдущее" - верно только для определённых версий php.  
И не может быть использовано при написании корректных конфигурационных
файлов для nginx'а.

> Тем не менее, в спецификации с fastcgi.com не указано что нельзя отсылать 
> дублирующиеся имена. А зря.
> 
> Потому что исправить nginx, чтобы он не отправлял дублирующиеся имена теперь 
> тоже нельзя, т.к. это сломает всем приложения.

Возможно, имеет смысл добавить warning в случае дублирующихся 
имён.  Хотя меня лично вполне устраивает текущее поведение, и оно 
вполне согласуется с поведением nginx'а в других подобных 
случаях.

Maxim Dounin





More information about the nginx-ru mailing list