ПРОЕКТЫ 


  АРХИВ 


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]

Re: memcache_key и HTTP Accept-Language



Здравствуйте, Сергей.

Хост и язык можно регэкспами через set установить
http://sysoev.ru/nginx/docs/http/ngx_http_rewrite_module.html#set

и из эти новых переменных потом формировать $memcached_key:

    set  $myhost  $host;
    if ($host ~* "^.*\.([^.]+\.[^.]{2-4})$" ) {
        set  $myhost  $1;
    }
    set  $mylang  "en";
    if ($http_accept_language ~* "ru" ) {
        set  $mylang  "ru";
    }
    $memcached_key "parked#$myhost#$mylang"
    
SS> Парковка доменов. Имеется маленькая кучка fastcgi бекендов, которые
SS> генерят динамику в зависимости от запрошенного HTTP Host и
SS> Accept-Language.
SS> На морде стоит nginx шестой ветки и проксирует всё подряд на бекенды.
SS> Которые либо отдают страничку из кеша, либо генерят и кладут в кеш.

SS> Так как бекенды по сравнению с nginx сильно медленные в целом и
SS> неасинхронные, хочется не проксировать *каждый* запрос на них, а
SS> задействовать http_memcached_module.
SS> Не знаю как составить ключ $memcached_key "parked#test-host.tld#ru,en"
SS> из заголовков

SS> Host: test-host.tld
SS> Accept-Language: ru-ru;q=1.0,en-us;q=0.9,*;q=0.8

SS> хост понятно, это $host. И то, от него надо откусить www. если есть.

SS> Уверен, что многие сталкивались с такой задачкой. Есть ли готовые рецепты?

SS> Писать свой сишный модуль не подходит.

SS> Решаема ли задача в таких условиях?
 


  

--

С уважением,
Михаил Монашёв, SoftSearch.ru
mailto:postmaster@xxxxxxxxxxxxx
ICQ# 166233339
http://michael.mindmix.ru/
Без бэкапа по жизни.




 




Copyright © Lexa Software, 1996-2009.