Re: Есть Аналог комбинированных RewriteCond Апача?

Gena Makhomed gmm на csdoc.com
Чт Фев 18 14:52:41 MSK 2010


On 16.02.2010 17:30, Igor Sysoev wrote:

>> ^.*(?<*Tn=[0-9]+.*)That=cat(?!.*Tn=[0-9]+).*$

> Что меня всегда поражало в таких rewrite'ах, так это то, почему люди
> выносят такую логику на птичий язык rewrite'ов. Что мешает сделать это
> на бэкенде, где есть универсальный язык программирования, а не
> кастрированная машина Тьюринга ?

наверное они работают с rewrite на frontend`ах
по аналогии с stored procedures в серверах баз данных:
синтаксис менее удобный, чем код на универсальном
языке программирования, зато это работает быстрее.

кстати, если у perl есть проблемы при нехватке памяти,
может быть имеет смысл попробовать python ? потому что
в python при нехватке памяти выбрасывается exception
MemoryError, да и синтаксис у Python совсем не "птичий".

однако, кроме встраивания Python внутрь процесса nginx
и взаимодействия между python и nginx через протоколы
FastCGI / http есть ведь и третий способ: сделать IPC
между nginx и helper process, который будет асинхронно
предоставлять нужную nginx`у функциональность, при этом
не останавливая работу nginx и не уменьшая стабильность.

и тогда всю необходимую логику работы rewrites можно будет
перенести на frontend, и не только это. что-то похожее
в природе уже есть - это Milter API у почтовых серверов.

благодаря этому появилась возможность создать огромное количество
пользовательского кода для почтовых серверов, практически на любой
случай. вот, например, каталог: https://www.milter.org/

один из наиболее интересных вариантов - это MIMEDefang,
возможность написания своих собственных фильтров на perl,
http://www.mimedefang.org/static/mimedefang-lisa04.pdf
(скорость, надежность и масштабируемость архитектуры)

как с помощью milter/MIMEDefang можно сделать advanced защиту
от спама, так и с помощью аналогичного интерфейса для nginx
можно было бы сделать очень много полезных extensions для
nginx, в частности - те же rewrites, защита от DDoS и т.п.

-- 
Best regards,
  Gena




Подробная информация о списке рассылки nginx-ru