location ~ \.php$

Gena Makhomed makhomed at pbank.lutsk.ua
Thu Oct 18 14:57:05 MSD 2007


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

Wednesday, October 17, 2007, 6:09:14 PM, Maxim Dounin wrote:

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

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

если это действительно так, тогда может быть имеет смысл внутри nginx
регулярные выражения вида ~ \.php$ обрабатывать не через библиотеку pcre
а специально оптимизированной для такого случая функцией "сопоставления"?

например, при парсинге конфига - распознавать regexпы \.AB$ \.ABC$ \.ABCD$
и потом при обработке запросов соответствие uri таким шаблонам можно будет
проверять буквально несколькими машинными инструкциями. например, для i386
и шаблона ~ \.php$ весь match может быть сформулирован 1 машинной командой
псевдокод: *( (uint32*)( uri_string[ uri_len - 4 ] ) ) == (uint32)('.php')

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







More information about the nginx-ru mailing list