Вопрос по конфигурации
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