location ~ \.php$

Gena Makhomed makhomed at pbank.lutsk.ua
Thu Oct 18 23:11:53 MSD 2007


Здравствуйте, Maxim!

Thursday, October 18, 2007, 5:02:10 PM, you wrote:

>> MD> Совсем правильный ответ - перепроектировать систему так,
>> MD> чтобы location'ы с регулярными выражениями в конфиге отсутствовали.

>> потому что сопоставление запроса и регулярного выражения в location ~ \.php$
>> занимает слишком много ресурсов процессора, или почему такая рекомендация?

MD> Потому что они все проверяются для каждого запроса последовательно, внося
MD> оверхед пропроциональный количеству описанных location'ов с regexp'ами.
MD> Соответственно - такой подход не масштабируется.

Ok. а если location`ы сделать вложенными, [ http://www.lexa.ru/nginx-ru/msg13856.html ]

IS> http {
IS>     server {
IS>         location / {
IS>             location /a/ {
IS>                 location ~ \.php$ {
                    ...
                location /b/ {
                    location ~ \.phtml$ {
                    ...

то при запросе файла /b/2.phtml будет проверяться только один regexp. (?)

от location'ов с регулярными выражениями можно избавиться только
двумя способами - вынесением статики в отдельные server/location
и с помощью location @fallback (но здесь будут "лишние" syscalls) (?)

MD> Ну и по тем же причинам, о которых уже сказал Игорь - они вносят 
MD> необходимость мучительно искать "а какая же конфигурация сработала". 
MD> Собственно, раз в неделю возникающие вопросы "а почему у меня не 
MD> включается авторизация на index.php" - это оно и есть.

причем в 99.99% случаев они хотят закрыть ip-фильтром/паролем admin-панель сайта.
многие сайты, написанные на php, так просто на статику и динамику - не разделить.

-- 
Best regards,
 Gena                            mailto:makhomed at pbank.lutsk.ua







More information about the nginx-ru mailing list