17.10.07, Maxim Dounin<mdounin@xxxxxxxxxx> написал(а):
> 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'ы
> с регулярными выражениями в конфиге отсутствовали.
>
> Maxim Dounin
>
>
Не нервничайте так, я прекрасно отдаю себе отчет в том, что говорю.
Чем вам location ~ \.php$ { proxy_pass ... } не handler-location? Мне
удобно называть вещи своими именами.
И решения, которые вы представили тут, я писал в том самом месте, куда
идут ссылки. И я прекрасно понимаю, что мне нужно сделать, чтобы
защитить те же пресловутые php скрипты в локейшне.
И если мне вообще ото всех нужно спрятать мои скрипты, то скорее всего
в папку htdocs их я ложить не буду.
А если вообще не использовать локейшны, тогда зачем вообще nginx?
Я могу с таким же успехом использовать 0w. Функционал будет примерно
на том же уровне.
Дело в другом.
Локейшны - очень гибкая и хорошая штука, но в данный момент люди все
больше и больше наталкиваются на ограничения, о которых сейчас идет
речь. Мне, например, интересно знать мнение Игоря Сысоева каким
образом будет складываться их дальнейшая судьба, будут ли учтены
желания пользователей в этом вопросе.
Недавно я обсуждал эту проблему и вытекающие с Константином Архиповым
(voxus), он высказался за то, чтобы написать в рассылку и получить
ответ у Игоря.