Вопрос по auth_basic.

Maxim Dounin mdounin at mdounin.ru
Tue Jul 7 18:57:39 MSD 2009


Hello!

On Tue, Jul 07, 2009 at 04:21:14PM +0300, maxhl at hitline.net.ua 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 at sysoev.ru [mailto:owner-nginx-ru at sysoev.ru] On Behalf
> Of Maxim Dounin
> Sent: Tuesday, July 07, 2009 3:41 PM
> To: nginx-ru at sysoev.ru
> Subject: Re: Вопрос по auth_basic.
> 
> Hello!
> 
> On Tue, Jul 07, 2009 at 02:55:24PM +0300, maxhl at hitline.net.ua 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
> 
> 





More information about the nginx-ru mailing list