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
>
>
|