ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Вопрос по auth_basic.



Hello!

On Tue, Jul 07, 2009 at 04:21:14PM +0300, maxhl@xxxxxxxxxxxxxx wrote:

> Да ниже корня перед статистикой есть 
>     location ~ .pl$  {
>         auth_basic            "closed site";
>         auth_basic_user_file  /home/htdocs/.ht_passwd;
>         index index.pl;
>         fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
>         fastcgi_param SCRIPT_NAME $fastcgi_script_name;
>         fastcgi_pass    unix:/mnt/md0/nginx-fcgi.sock;
>         fastcgi_index    index.pl;
>         include  /usr/local/nginx/conf/fastcgi.conf;
>     } 

Ну вот вероятно сюда оно и приходит, превратившись по дороге в 
запрос в какой-нибудь /stats/index.pl.

При приведённом ниже конфиге оно превращаться не должно, т.к.  
fastcgi_pass не даст отработать index, но есть более одного 
способа всё испортить (не говоря уже о банальном предположении что 
реальный тестовый запрос был не /stats, а собственно 
/stats/index.pl).  Не видя полного конфига сложно сказать что-то 
большее.

> Если сделать перл скприпты без паролей то и работать будут без паролей ... 

Не понял какое отношение имеет эта фраза к обсуждаемому вопросу.  
У вас запрос обрабатывается не в том location'е, в котором вы 
ожидаете.  Что именно написано в этих location'ах - дело десятое.

Maxim Dounin

> 
> 
> 
> -----Original Message-----
> From: owner-nginx-ru@xxxxxxxxx [mailto:owner-nginx-ru@xxxxxxxxx] On Behalf
> Of Maxim Dounin
> Sent: Tuesday, July 07, 2009 3:41 PM
> To: nginx-ru@xxxxxxxxx
> Subject: Re: Вопрос по auth_basic.
> 
> Hello!
> 
> On Tue, Jul 07, 2009 at 02:55:24PM +0300, maxhl@xxxxxxxxxxxxxx wrote:
> 
> > День добрый.
> > Почему если есть:
> > 
> >    location / {
> >        auth_basic            "closed site";
> >        auth_basic_user_file  /home/htdocs/.ht_passwd;
> >        index index.pl;
> >     }
> > 
> > И после идет:
> > 
> >     location /stats {
> >       auth_basic            "closed site";
> >         auth_basic_user_file  /home/htdocs/stats/.ht_passwd;
> >         index index.pl;
> >         fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
> >         fastcgi_param SCRIPT_NAME $fastcgi_script_name;
> >         fastcgi_pass    unix:/mnt/md0/nginx-fcgi.sock;
> >         fastcgi_index    index.pl;
> >         include  /usr/local/nginx/conf/fastcgi.conf;
> >     }
> > 
> > То при запросе в /stats проверяет пользователя 
> > /home/htdocs/.ht_passwd; и если нет то отдает
> > 
> > HTTP request sent, awaiting response... 401 Unauthorized Authorization 
> > failed.
> > 
> > И в /home/htdocs/stats/.ht_passwd; даже не проверяет ...
> > Как можно правильно разделить location ?
> 
> Вероятно, в конфиге ещё есть location ~ \.pl$ {...}.
> 
> Regex location'ы по умолчанию имеют приоритет над обычными.  Чтобы этого
> избежать - надо написать location ^~ /stats (note "^~").
> 
> Подробнее о том как выбирается location для обработки запроса можно
> прочитать в документации тут:
> 
> http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#location
> 
> Maxim Dounin
> 
> 



 




Copyright © Lexa Software, 1996-2009.