Re: Re: Re[2]: location... не понятно

Maxim Dounin mdounin at mdounin.ru
Wed Oct 17 20:23:30 MSD 2007


Hello!

On Wed, 17 Oct 2007, AlexeyK wrote:

>> 17.10.07, Maxim Dounin<mdounin at mdounin.ru> написал(а):
>> Hello!
>>
>> On Wed, 17 Oct 2007, AlexeyK wrote:
>>
>> > Вы знаете, без разницы, я об этом как-то писал в рассылку, но письмо
>> > осталось без внимания.
>>
>> > Есть, к примеру, 2 локейшна, один хандлер пхп
>>
>> Ещё раз для тех кто не смотря ни на что всё-таки не понял: в nginx'е НЕТ
>> никаких "хандлеров". Есть ТОЛЬКО location'ы. И запрос выполняется в
>> контексте одного конкретного location'а.
>>
>> Как написать location'ы так, чтобы авторизация срабатывала и для 
>>статики,
>> и для проксируемых php скриптов - тут неоднократно говорилось:
>>
>> location /phpmyadmin/ {
>>      deny all;
>>      ...
>> }
>> location ~ ^/phpmyadmin/.*\.php {
>>      deny all;
>>      fastcgi_pass ...
>>      ...
>> }
>>
>> И убедится что "location ~ ^/phpmyadmin/.*\.php" стоит перед другими
>> location'ами с регулярными выражениями.
>>
>> Если хочется действительно deny all - т.е. просто всё закрыть, то можно
>> ещё сделать
>>
>> location ^~ /phpmyadmin/ {
>>      deny all;
>> }
>>
>> В этом случае location'ы с регулярными выражениями проверяться не 
>> будут.
>>
>> Подробнее о том как писать location'ы и как именно выбирается location, 
>> в
>> контексте которого будет обработан запрос, можно прочитать тут:
>>
>> http://www.sysoev.ru/nginx/docs/http/ngx_http_core_module.html#location
>>
>> > http://www.lexa.ru/nginx-ru/msg13656.html вот письмо, и еще одно
>> > http://www.lexa.ru/nginx-ru/msg13621.html, в которых обсуждалась
>> > данная проблема, но ответы так и не были найдены/даны.
>>
>> Обсуждалась совсем другая проблема. А именно - как бы такое сделать, 
>> чтобы
>> лишний location не писать. Ответ - никак.
>>
>> Совсем правильный ответ - перепроектировать систему так, чтобы 
>> location'ы
>> с регулярными выражениями в конфиге отсутствовали.
>
> Не нервничайте так, я прекрасно отдаю себе отчет в том, что говорю.
>
> Чем вам location ~ \.php$ { proxy_pass ... } не handler-location? Мне
> удобно называть вещи своими именами.

Проблема именно в том, что вы называете вещи не своими именами. После 
чего удивляетесь, что они ведут себя не так, как должно вести себя вещи, 
чьими именами вы их назвали.

> И решения, которые вы представили тут, я писал в том самом месте, куда
> идут ссылки. И я прекрасно понимаю, что мне нужно сделать, чтобы
> защитить те же пресловутые php скрипты в локейшне.

> И если мне вообще ото всех нужно спрятать мои скрипты, то скорее всего
> в папку htdocs их я ложить не буду.

> А если вообще не использовать локейшны, тогда зачем вообще nginx?
> Я могу с таким же успехом использовать 0w. Функционал будет примерно
> на том же уровне.

Не использовать location'ы != не использовать location'ы с регулярными 
выражениями.

> Дело в другом.

> Локейшны - очень гибкая и хорошая штука, но в данный момент люди все
> больше и больше наталкиваются на ограничения, о которых сейчас идет
> речь. Мне, например, интересно знать мнение Игоря Сысоева каким
> образом будет складываться их дальнейшая судьба, будут ли учтены
> желания пользователей в этом вопросе.

> Недавно я обсуждал эту проблему и вытекающие с Константином Архиповым
> (voxus), он высказался за то, чтобы написать в рассылку и получить
> ответ у Игоря.

Таки кто вам помешал это сделать -- вместо того чтобы писать малосвязные 
некорректные утверждения в ответ на объяснение как решить конкретную 
проблему?

Maxim Dounin





More information about the nginx-ru mailing list