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