Re: Проблема с кэшем
Igor Sysoev
igor на sysoev.ru
Пт Авг 19 13:48:05 UTC 2011
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 в начале тоже ?
Какая версия nginx'а ?
> 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