http://sourceforge.net/projects/pyrotate/by anyhow2 - Nginx Mailing List - English
Ага очень хотелось бы типа так #(в регэкспе какой-нибудь Ажмамедов и другие DOSеры злобные, но нужные) if ($remote_addr !~ "^(89\.188\.108\.18)|(217\.65\.8\.8[1-6])") { limit_req zone=one burst=4; limit_conn two 2; }by anyhow2 - Nginx Mailing List - Russian
Опа, пока писал пост, осенило :) Так можно ж Evasive'ские строчки в конфиге Апача вернуть. Тем более они только на пробрасываемом ресурсоемком динамическом Location и нужны были.by anyhow2 - Nginx Mailing List - Russian
ИМХО, проще и эффективнее подправить модули ngx_http_limit_zone_module и ngx_http_limit_req_module так, чтобы можно было задать параметр аналогичный существующему в MOD_EVASIVE Апача DOSWhiteList. Интересно, что с Евасивом у меня была другая проблема, тby anyhow2 - Nginx Mailing List - Russian
Как я понял, AND никому не нужен :(by anyhow2 - Nginx Mailing List - Russian
Denis F. Latypoff Wrote: ------------------------------------------------------- > > Все, победил :) > > такой вариант заработал > > if ($args ~* "([^a-z0-9]){3,}") { > > return 403; > > } > я такого не писал. Простой поиск по странице поby anyhow2 - Nginx Mailing List - Russian
ну и совсем коротко if ($args ~* "(\W{2}){4,}") { return 403; }by anyhow2 - Nginx Mailing List - Russian
Более того и такой вариант прошел :) if ($args ~* "([^a-z0-9]){3,}") { return 403; }by anyhow2 - Nginx Mailing List - Russian
Все, победил :) такой вариант заработал if ($args ~* "([^a-z0-9]){3,}") { return 403; }by anyhow2 - Nginx Mailing List - Russian
if ($args ~* "....") { return 403; } 2010/02/24 16:02:44 22856#0: *1 "(..){2,}" does not match "r=%5Cxd0%5Cxb7%5Cxd0%5Cxb2%5Cxd0%5Cxb5%5Cxd1%5Cx80 И о чудо! такой вариант if ($args ~* "..") { return 403; } вдруг сработал 010/02/24 16:05:27 23053#0: *by anyhow2 - Nginx Mailing List - Russian
if ($args ~* "\\\x") { return 403; } Дает в логах 2010/02/24 15:51:39 21855#0: *1 "\\x" does not match "r=%5Cxd0%5Cxb7%5Cxd0%5Cxb2%5Cxd0%5Cxb5%5Cxd1%5Cx80&That=std", if ($args ~* "\\x") { return 403; } Дает в логах 2010/02/24 15:54:54 22063#0: *1 "\by anyhow2 - Nginx Mailing List - Russian
Понял. Заменил на if ($arg_r ~* "abcd") { и все сработало как надо. Нгинкс видимо как-то особо обрабатывает комбинацию \x но ведь именно ее мне и хочется запретить в строке запроса. Может кто знает, как тут быть?by anyhow2 - Nginx Mailing List - Russian
Спасиб, if ($arg_r ~* "(\\x{2}){3,}") { помогло для понимания нгинксом фигурных скобок. Но все равно не матчит.by anyhow2 - Nginx Mailing List - Russian
Написал в конфиге: if ($QUERY_STRING ~* ^.*(\\x){3,}.*$) { return 403; } Запускаю /etc/rc.d/rc.nginx start Starting Nginx server daemon... : pcre_compile() failed: missing ) in "^.*(\x" in /etc/nginx/nginx.conf:131 Ладно, я не гордый, с учетом того, что могу и три раза скоby anyhow2 - Nginx Mailing List - Russian
Igor Sysoev Wrote: ------------------------------------------------------- > Вообще говоря, апачевский > mod_rewrite на порядок > нетривиальнее любого > языка программирования, за > исключением разве что APL и > sendmail'а. > Что там пытаются понять >by anyhow2 - Nginx Mailing List - Russian
Igor Sysoev Wrote: > Что меня всегда поражало в > таких rewrite'ах, так это то, > почему люди > выносят такую логику на > птичий язык rewrite'ов. Что > мешает сделать это > на бэкенде, где есть > универсальный язык > программby anyhow2 - Nginx Mailing List - Russian
Прочитал вот здесь http://sysoev.ru/nginx/docs/http/ngx_http_rewrite_module.html#internals Директивы модуля ngx_http_rewrite_module компилируется на стадии конфигурирования во внутренние коды, исполняемые во время запроса интерпретатором. Интерпретатор прby anyhow2 - Nginx Mailing List - Russian
Ilya Pirogov Wrote: ------------------------------------------------------- > А если так попробовать: > > location /take { > proxy_pass http://127.0.0.1:8080/take; > > if ($arg_that != "cat") { > break; > } > > if ($arg_tn !~ \d) { > rewrite ^.*$ "/take?Tn=6by anyhow2 - Nginx Mailing List - Russian
При переносе сайта с Апача на Nginx (nginx - морда и статика, Апач остался для динамики на 127.0.0.1:8080) столкнулся с неустранимой проблемой :( Было RewriteCond %{QUERY_STRING} ^.*That=cat.*$ RewriteCond %{QUERY_STRING} !^.*Tn=\d.*$by anyhow2 - Nginx Mailing List - Russian