Re: Проблема с кэшем
Igor Vavrjin
igor.vavrjin на gmail.com
Пт Авг 19 17:30:27 UTC 2011
19 августа 2011 г. 20:48 пользователь Igor Sysoev <igor на sysoev.ru> написал:
> 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 на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
Подробная информация о списке рассылки nginx-ru