ПРОЕКТЫ 


  АРХИВ 


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: GET запросы в memcache


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: GET запросы в memcache
  • From: "Sergey Shepelev" <temotor@xxxxxxxxx>
  • Date: Fri, 19 Dec 2008 21:24:08 +0300
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=eBZ6fdEx2jIUyBksw/iFVkWgaR4aInWR47sAJqHks+I=; b=rgMnMI/Yj0otNf/6HueUSIuauabdiO8yK+hvmNTuajhtauqg38aim85bDZb4qXBI+C 61CeLCzgiGs/Yna8EhzygFn5kLjrgcnqX0s6LkNnJWQ2CPS4DfLvTSAs8wWT02qdfIeg VozMUDU3RvsefjV74M0Y4lSvm4pcZs65MrfqE=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=iSwOphdvZDL7dxPVwGNqfr2Sdv5RKRmnB0Uwpxy6INtRAeKd9JHKky7Phy1oxpjYy8 zl9bZjiCI/jUxiMzGsYfql1yqFFGmq2cbH5w3IcdQnOiH9TLMxE3aS4JvC2KCIXhP7rI Q/ekGztHQLvH9/1r1pRZzKcBzap/8Qc3VfopY=
  • In-reply-to: <1451154051.20081218194309@xxxxxxxxx>
  • References: <1451154051.20081218194309@xxxxxxxxx>

2008/12/18 Andrey P <andreyp.kt@xxxxxxxxx>:
> Приветствую!
>
> При обращении к memcache nginx запрашивает данные по  ключу:
> /search/abc/?lang=ru&q=%25D0%259C&type=person , php же сохраняет
> страницу с ключом: /search/abc/?lang=ru&q=%D0%9C&type=person (ключ
> берётся из $_SERVER['REQUEST_URI']). Собственно кэш перестаёт
> работать.
> Как это можно исправить? Заранее благодарен!

Нужно поправить php скрипт так, чтоб он клал данные в ключ
/search/abc/?lang=ru&q=%25D0%259C&type=person

а потом придёт злой школьник и сделает запрос длиннее 256 символов.
Ваш похапэ попытается положить это в мемкеш и свалится.
Эт я к тому, что ключом мемкеша должно быть нечто короткое. Например,
хэш от URI.

>
>
>  Конфин nginx'a
>  set $backend 1;
>
>        if ($uri !~ \.) {
>            rewrite ^(.+)$ /index.php break;
>        }
>
>        if ($uri ~ \.(gif|jpg|jpeg|png|js|css)$) {
>            set $backend 0;
>        }
>
>        location / {
>            if ($http_cookie ~* "session=([^;]+)(?:;|$)" ) {
>                set $backend 0;
>            }
>            if ($request_method = POST) {
>                set $backend 0;
>            }
>
>            if ($backend = 1) {
>
>                add_header Content-Type "text/html; charset=utf-8";
>                set $memcached_key "$request_uri";
>                memcached_pass 127.0.0.1:11211;
>                error_page 404 502 504 = @fallback;
>                break;
>            }
>
>            root   /var/www/tv.srv/www;
>            index  index.php index.html index.htm default.php;
>            break;
>        }
>
>        location @fallback {
>                root           /var/www/tv.srv/www;
>                fastcgi_pass   127.0.0.1:8888;
>                fastcgi_index  index.php;
>                fastcgi_param  SCRIPT_FILENAME  
> /var/www/tv.srv/www$fastcgi_script_name;
>                include        fastcgi_params;
>        }
>
> --
> С уважением,
>  Andrey                          mailto:andreyp.kt@xxxxxxxxx
>
>
>


 




Copyright © Lexa Software, 1996-2009.