Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Условное кешированеи memcached
- To: nginx-ru@xxxxxxxxx
- Subject: Условное кешированеи memcached
- From: Alex Ivanov <jungo495@xxxxxxxxx>
- Date: Thu, 27 Aug 2009 15:01:25 +0400
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type; bh=qcZ9akGjmNqSAqNNx1zFAFeiMCx1hEQPydUzsGaE+N8=; b=sH5OnKHr5jU9p4ZhJXWD27eq7XUuWKxQ/JPIpgxKxQwMJb2gTSsiOuYGCVrzB86ls9 q20P+7LM86wDmz9VRFOP+emchHrKp5T8LGl6i8e3x95ns9dTdRr+3x8niOQR4fBrBnEr zvwE+MQKaSa0DyTvTYA4H1hfiWeH4Lq6FOonw=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=n8qM97YvXxP01v4a0GR3e7N7fHmcnYme7j7/4M4DVOm7KttyUCX6LKX1iDplPN5lY8 qQs6mfvGjqkrhCqUGgmpzdaj8dazFaPc3GrxsgrYV4u0WK5fOdQJV6kjYFRzJvH4TOCX H3LgO5FKdw1DFVMkHqUpNppokTkWwgXM28DfE=
Добрый день Cделал готовую схему для условного кеширования в memcached. Все отлично работает но хотелось поправить ситуацию с ложным ключом, все таки не красиво просто так обращатся туда за ложными данными.
Готовых решений не нашел. Все остальное в отрытом доступе не работоспособно в моем случае. set $backend 0;
# именно при таком локейшене обеспечивается точное кеширование всего что есть
location ~ \/ {
default_type text/html; gzip_types application/octet-stream; index default.php index.php index.html index.htm;
if ($http_cookie !~ "th_auth" ) {
set $backend 1;
} if ($request_method != GET) { 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 405 502 504 = @fallback; break; } # ситуация такая что когда cookie есть он отрабатывает ее и не знает куда направить запрос - а надо на фоллбэк локейшн его направить, и с пост будет тоже самое происходить
# для решения вводим ложный ключ и далее переход на фолбек тем у кого есть кука либо по еррору set $memcached_key "123"; memcached_pass 127.0.0.1:11211; error_page 404 405 502 504 = @fallback;
break; }
location @fallback { fastcgi_pass unix:/tmp/php-fpm.socket;
... }
location ~ \.php$ { fastcgi_pass unix:/tmp/php-fpm.socket;
... }
Спасибо за помощь.
|