Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Проблема с кэшем
- To: nginx-ru@xxxxxxxxx
- Subject: Re: Проблема с кэшем
- From: Igor Vavrjin <igor.vavrjin@xxxxxxxxx>
- Date: Sat, 20 Aug 2011 00:30:27 +0700
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; bh=dS+Qecxlg4whatMBES2BsiCYJ5srNmgWM3PxmVcBRhg=; b=SqTkieB7GebE8mMLhodeGTPkvPyVfmA0snIzv/5b4l8+fwXwT+CAaRr4QIczABW+wS 7Y0rQSr88aibfMbm8JcL7IPqS4GBbBle5el3kMxdE7IPp6i+QxcxjZjUrHz1a2IwyoPZ 8BJmhuU5tVLRiPoCsXUFFiZnLq046WBPzGRgs=
- In-reply-to: <20110819134805.GA27327@xxxxxxxxx>
- References: <4E4E4865.5030105@xxxxxxxxx> <20110819134805.GA27327@xxxxxxxxx>
19 августа 2011 г. 20:48 пользователь Igor Sysoev <igor@xxxxxxxxx> написал:
> On Fri, Aug 19, 2011 at 06:26:29PM +0700, Игорь Вавржин wrote:
>> Здравствуйте.
>>
>> Периодически появляется такая проблема: в кэш nginx попадает примерно
>> вот такое содержимое
>>
>> KEY: nsk|GET|site.com|/page.html
>> X-Powered-By: PHP/5.3.6-6~dotdeb.0
>> Expires: Mon, 26 Jul 1997 05:00:00 GMT
>> Last-Modified: Fri, 19 Aug 2011 10:32:20 GMT
>> Content-Type: text/html; charset=UTF-8
>>
>> Соответственно при попытке обратиться повторно за ответом - браузер
>> ничего в ответ не получает (нет вообще контента) и говорит что адрес
>> недоступен.
>> Спасает чистка кэша. Скажите что можно сделать, а то я в панике :)?
>
> То есть, тела нет и HTTP/1.0 в начале тоже ?
Насчет HTTP не уверен (надо было приложить сам файл кэша, если еще раз
поймаю - приложу, сейчас таких файлов нет) - там в начале какие-то не
читаемые символы стоят типа
N<9D>NN^@^@^@^@<FF><FF><FF><FF><FF><FF><FF><FF>?NN^@^@^@^@:Dv1^@^@V^@<9E>^@TP/1.1
(но это взято из нормального кэша). Строка взята из консоли командой
less file_name - кодировка UTF-8
> Какая версия nginx'а ?
nginx version: nginx/0.8.54
>
>> server {
>> listen *:80 default;
>>
>> error_log /var/log/nginx/default.error.log;
>> access_log /var/log/nginx/default.access.log;
>>
>> charset utf-8;
>> root /var/www/data;
>>
>> location / {
>> index index.php;
>> set $path_info $uri;
>> try_files $uri $uri/ /index.php?$args;
>> }
>
> Вот это:
>
>> if ($request_method != "GET") {
>> set $not_cached 1;
>> }
>
> не нужно. Для этого есть fastcgi_cache_methods, разрешает кэш для GET и HEAD.
За этот комментарий спасибо большое
>
>> location ~ \.php$ {
>> fastcgi_pass backend_local;
>> include fastcgi_params;
>> fastcgi_param PATH_INFO $path_info;
>> fastcgi_param SERVER_NAME $host;
>>
>> fastcgi_cache_bypass $is_args $not_cached $cookie_PHPSESSID
>> $cookie_no_nginx_cache;
>> fastcgi_no_cache $is_args $not_cached $cookie_PHPSESSID
>> $cookie_no_nginx_cache;
>> fastcgi_cache getpages;
>> fastcgi_cache_valid 200 301 302 304 15m;
>> fastcgi_cache_key
>> "$cookie_city_code|$request_method|$host|$request_uri";
>
> Ключ лучше сделать
> "$host|$uri?$args|$cookie_city_code";
И за этот тоже :)
>
>
> --
> Игорь Сысоев
> http://sysoev.ru
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@xxxxxxxxx
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|