Re: Кэширование+поддомены
a-25
nginx-forum на nginx.us
Пн Июл 19 16:53:05 MSD 2010
Peter Leonov Wrote:
-------------------------------------------------------
> Рекомендую показать конфиг
> (у нас тут так принято).
>
Хорошо, попытаюсь выкинуть все лишнее.
Конфиг без ненужного:
proxy_cache_path /var/cache/nginx levels= keys_zone=wholepage:10m;
server {
..................................
location / {
........................................................
if ($needToCache = '111111')
{
return 412;
}
error_page 412 = @caching;
}
location @caching {
internal;
proxy_pass http://127.0.0.1:8080;
proxy_redirect http://myhost.com:8080/ /;
proxy_set_header Host myhost.com;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
#if the language cookie is empty, fill it with russian
set $currentLanguage '';
if ($http_cookie ~* '^(.*)myhost_lang=([a-z]{1,3})(.*)$'){
set $currentLanguage $2;
}
if ($currentLanguage = '')
{
set $currentLanguage 'ru';
}
# Turn on cache
proxy_cache wholepage;
proxy_cache_valid 200 301 302 304 30s;
proxy_cache_key
"$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri|$currentLanguage";
# Guarantee that different users won't receive session cookies
# Turn off cookies
proxy_hide_header "Set-Cookie";
# Make nginx ignore php-cache headers
# and cache a page in any case
proxy_ignore_headers "Cache-Control" "Expires";
}
}
> Предполагаю, что у вас на
> все поддомены одна зона
> кеширования. Можете
> разбить зоны кеша по
> доменам?
Да, зона одна. Разбить могу, видимо, это
проблему сразу решит. Да, собственно,
проблему я и так решил, мне просто
непонятно, действительно ли nginx не
учитывает в url-е хост и считает его
одинаковым у всех запросов.
>
> On 18.07.2010, at 15:53, "a-25" wrote:
>
> > Ключ такой:
> >
> > proxy_cache_key
> >
> "$request_method|$http_if_modified_since|$http_if_
> none_match|$host|
> > $request_uri|$currentLanguage";
> >
> > где $currentLanguage - язык
> страницы (берется из
> > куки, сайт многоязычный).
> >
> > В ключе $host есть.
> >
> > Posted at Nginx Forum:
> http://forum.nginx.org/read.php?21,110119,110147#m
> sg-110147
> >
> >
> > _______________________________________________
> > nginx-ru mailing list
> > nginx-ru at nginx.org
> > http://nginx.org/mailman/listinfo/nginx-ru
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,110119,110452#msg-110452
Подробная информация о списке рассылки nginx-ru