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