Вопрос по конфигурации

Hett nginx-forum at nginx.us
Fri Aug 24 10:11:31 UTC 2012


Всем привет,
есть 2 location

        location /download/premium/ {
            limit_req zone=one burst=5;
            limit_conn addr 8;
            rewrite
^/download/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/(.*)$
/v1/AUTH_system/$2/$3/$7?temp_url_sig=$4&rate_limit=$5&temp_url_expires=$6&type=$1
break;
            proxy_pass       http://127.0.0.1:8080;
            proxy_set_header Host      $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
        location /download/free/ {
            limit_req zone=one burst=5;
            limit_conn addr 1;
            rewrite
^/download/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/(.*)$
/v1/AUTH_system/$2/$3/$7?temp_url_sig=$4&rate_limit=$5&temp_url_expires=$6&type=$1
break;
            proxy_pass       http://127.0.0.1:8080;
            proxy_set_header Host      $host;
            proxy_set_header X-Real-IP $remote_addr;
        }

По сути они одинаковы, но отличаются только limit_conn
Я пробовал матчить URL, получать оттуда значение нужной переменной (она идет
сразу после слова download)
и менять переменную, в итоге было что-то похожее на:

if($url ~/^download/([^/]+).*/) {
    set $limit_conn = $1;
}
 (как-то так, точно уже не помню, а конфиг не сохранил)
но конфигурация не работала, ругаясь на то. что я не могу изменять значение
данной переменной в этом месте.
Если же я выносил set из под этого условия, то все работало. 

В общем вопрос в том, можно ли приведенный выше конфиг записать в одной
location а не плодить их?
Спасибо.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,230096,230096#msg-230096



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