ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

nginx+redis+eval


  • To: nginx-ru@xxxxxxxxx
  • Subject: nginx+redis+eval
  • From: Дмитрий Жильцов <zaabjuda@xxxxxxxxx>
  • Date: Mon, 5 Mar 2012 00:41:25 +0400
  • Authentication-results: mr.google.com; spf=pass (google.com: domain of zaabjuda@xxxxxxxxx designates 10.60.14.36 as permitted sender) smtp.mail=zaabjuda@xxxxxxxxx; dkim=pass header.i=zaabjuda@xxxxxxxxx
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type :content-transfer-encoding; bh=+dxo8DNOdYeZfsgvQ97o+LKyoZfl/yueuzSe9TG3g+Q=; b=oWm9kGrb+j7rvPgKve1kbvl8xcRMPTE0mA3HVcgBITaadytbWP3Hii7NZ265N+KcNU 92/MrcK56vU6fONnkyJqhgpSYTT1R+7aXhnAOho/T2eC+X/U8MQEznmpNvKZkzOnaEpt 7QJog73PzSFSWoKJFFjpZC60/ODDtG1JPOi+KpHFzdO2pGWPTDnLcpo/tyoELuJWqGKH fiEydFN/klWaOWxJ+RLYOaadkkGSyzROFTgBWxdI7PUlXY+3XABDfcN7SoEb6mV7hLRP ZRw8zgAjjQWnxvD2Umt3lqXdj+Re/BWeBZCxcyVKfLiI5wExJ+ra9GFNe7DoIQa0+cHf 0nbQ==

Здравствуйте.

Возникла у меня заминка при написания конфига.

Что имеем
1. Необходимо выполнять динамическое проксирование с url типа
http://site.com/dln/IDUSER/IDCONTENT на значение ключа
dlnIDUSER_IDCONTENT из redis'а
2.Пример URL http://site.com/dln/VASYA/1234576
                redis 127.0.0.1:6379> get dlnVASYA_1234576
                "http://192.168.0.12:8080/colorring/rl/097/0/2340/0500/242.mp3";
     Сщщответсвенно URL http://site.com/dln/VASYA/1234576 должен
проксироваться на
http://192.168.0.12:8080/colorring/rl/097/0/2340/0500/242.mp3

Был написан конфиг

 location ~ ^/dln/(?P<USERID>[^/]+)/(?P<IDCONTENT>[^/]+) {
                eval_escalate on;
                eval $dlnproxy {
                       set $dln        "dln";
                       set $dl         "_";
                       set $dlnKey     $dln$USERID$dl$IDCONTENT;
                       set $redis_key "$dlnKey";
                       redis_pass      redis;
               }
               proxy_pass $dlnproxy;
 }

В логах ругается
2012/03/05 00:11:39 [error] 14823#0: *1 the "$redis_key" variable is
not set, client: 172.16.10.57, server: localhost, request: "GET
/dln/testuser/23456 HTTP/1.1", subrequest: "/eval_157611100", host:
"10.238.32.174"

После повторного прочтения документации по eval понял что eval
отрабатывает раньше rewrite.....

Подскажите как выйти из этой ситуации, предпологаю что нужно парсить
переменную $uri внутри функции eval, и выделять оттуда переменные, но
как это можно реализовать??
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.