ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Странное поведение nginx при кешировании



В Срд, 03/06/2009 в 16:57 +0400, nginx пишет:
> Наблюдается следующая картина
> Включаю кеширование, прописав 
> 
>         proxy_read_timeout 65;
>       proxy_send_timeout 11;
>       proxy_connect_timeout 10;
>       proxy_next_upstream off;
>       proxy_ignore_headers Cache-Control;
>       proxy_cache_path /var/tmp/nginx/proxy_cache levels=1:2
> keys_zone=zone1:10m;
>       proxy_cache zone1;
>       proxy_cache_key $server_name$uri?$memcached_args;
>       proxy_cache_min_uses 1;
>       proxy_cache_valid 10m;
>       proxy_cache_use_stale http_503;
> 
> У страницы 
> Last-Modified
> Wed, 03 Jun 2009 12:43:07 GMT
> Expires
> Wed, 03 Jun 2009 12:48:07 GMT
> отличаются на 5 минут
> 
> Работает это все так. При перезапуске nginx подбирает из кеша страницу и 5 
> минут апачи не трогает,
> через 5 минут начинает часть хапросов отдавать на апачи, причем логику 
> проследить не удается. 
> В чем может быть проблема?
> Могу предоставить логи и полный конфиг, но не думаю что стоит это делать 
> прямо сюда.

Привожу конфиги (закоментаренные строчки я пробовал раскрывать)

user nginx nginx;
worker_processes 8;

error_log /var/log/nginx/error_log error;

worker_rlimit_nofile    8192;

events {
        worker_connections  8192;
        use epoll;
}

http {
        server_names_hash_bucket_size   64;
        include         /etc/nginx/mime.types;
        default_type    application/octet-stream;

        client_header_timeout 21;
        client_body_timeout 22;
        send_timeout 23;
        client_max_body_size 10m;

        connection_pool_size 256;
        client_header_buffer_size 1k;
        large_client_header_buffers 4 2k;
        request_pool_size 4k;

        gzip on;
        gzip_min_length 1100;
        gzip_buffers    16 8k;
        gzip_types      text/plain application/xml application/x-javascript;

        output_buffers  8 32k;
        postpone_output 1460;

        sendfile        on;
        tcp_nopush      on;
        tcp_nodelay     on;

        keepalive_timeout 75 20;
        ignore_invalid_headers  on;
        index index.html;
        proxy_read_timeout 65;
        proxy_send_timeout 11;
        proxy_connect_timeout 10;
        proxy_next_upstream off;
        proxy_ignore_headers Cache-Control;
        perl_set $memcached_args 'sub {
my $r=shift;
$_=$r->args;
if($_ ne "")
{
    s/(&|^)[upd]id=[^&]*//igo;
    s/^&//io;
}
return $_;
        }';
        proxy_cache_path /var/tmp/nginx/proxy_cache levels=1:2
keys_zone=zone1:10m;
        proxy_cache_path /var/tmp/nginx/proxy_cache2 levels=1:2
keys_zone=zone2:10m;
        proxy_cache_key $server_name$uri?$memcached_args;
#       proxy_cache_min_uses 1;
#       proxy_cache_valid any 10m;
#       proxy_cache_use_stale http_503;
#       proxy_ignore_client_abort on;

        log_format  site_log_format  '$msec $request_time $remote_addr '
'$status $body_bytes_sent $gzip_ratio $server_name$request_uri
$http_referer';
        log_format  stat_log_format  '$msec $request_time $remote_addr '
'$status $uid_got $uid_set $server_name$request_uri $http_referer '
'$upstream_addr $upstream_response_time $upstream_status $time_local
"$http_user_agent" '
'$request_length $body_bytes_sent $gzip_ratio $request_body_file';
        access_log /nginx_log/all_log site_log_format;

        client_body_in_file_only on;
        client_body_temp_path /nginx_post 3 3;
            
        limit_zone too $server_name 1m;
    
        userid          on;
        userid_name     stat_uid;
        userid_domain   none;
        userid_path     /;

        open_file_cache          max=1000  inactive=20s;
        open_file_cache_valid    30s;
        open_file_cache_min_uses 2;
        open_file_cache_errors   on;

        include /etc/nginx/include/*;
}

Конфиг для данного вирт. хоста

server {
    listen      95.129.248.90;
    server_name ... ;
    charset     utf-8;
    access_log  /nginx_log/..._log site_log_format;

    location ~* ^(.+\.(php|php3|html)|.*/)$ {
        limit_conn      too 5;
        error_page      503 /503.html;
        proxy_cache zone2;
        proxy_pass http://backend2;
        proxy_set_header  Host ...;
        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP  $remote_addr;
        index        index.php index.html;
        access_log   /nginx_log/stat_log stat_log_format;
        access_log   /nginx_log/..._log site_log_format;
    }
    location /503.html {
        internal;
        root                    /data/test/htdocs;
        charset                 windows-1251;
        access_log              /nginx_log/stat_log stat_log_format;
    }
    location ~ / {
        root   ...;
    }
}
upstream backend2 {
    ip_hash;
    server IP1 max_fails=3 fail_timeout=60s ;
    server IP2 max_fails=3 fail_timeout=60s ;
}

кусок лога

1244098296.622 0.000 78.24.24.241 200 - - 04/Jun/2009:10:51:36
1244098297.318 0.000 95.129.248.46 200 - - 04/Jun/2009:10:51:37
1244098297.418 0.000 212.87.187.3 200 - - 04/Jun/2009:10:51:37
1244098298.425 0.000 85.249.160.42 200 - - 04/Jun/2009:10:51:38
1244098298.668 0.000 62.192.233.99 200 - - 04/Jun/2009:10:51:38
1244098299.040 0.000 84.50.208.4 200 - - 04/Jun/2009:10:51:39
1244098299.650 0.000 92.112.145.87 200 - - 04/Jun/2009:10:51:39
1244098299.745 0.000 193.110.112.100 200 - - 04/Jun/2009:10:51:39
1244098300.025 0.000 89.113.208.212 200 - - 04/Jun/2009:10:51:40
1244098300.068 0.000 77.245.197.224 200 - - 04/Jun/2009:10:51:40
1244098301.812 0.000 95.72.148.100 200 - - 04/Jun/2009:10:51:41
1244098302.674 0.000 88.200.188.123 200 - - 04/Jun/2009:10:51:42
1244098303.434 0.095 78.36.7.112 200 0.095 200 04/Jun/2009:10:51:43
1244098303.888 0.089 95.52.186.111 200 0.089 200 04/Jun/2009:10:51:43
1244098304.902 0.000 193.200.38.246 200 - - 04/Jun/2009:10:51:44
1244098305.007 0.000 84.204.156.166 200 - - 04/Jun/2009:10:51:45
1244098305.044 0.000 89.169.135.77 200 - - 04/Jun/2009:10:51:45
1244098306.220 0.000 94.248.0.51 200 - - 04/Jun/2009:10:51:46
1244098306.979 0.093 93.170.0.46 200 0.093 200 04/Jun/2009:10:51:46
1244098307.026 0.000 87.117.35.27 200 - - 04/Jun/2009:10:51:47
1244098307.197 0.000 93.185.176.158 200 - - 04/Jun/2009:10:51:47
1244098307.885 0.091 78.37.56.216 200 0.091 200 04/Jun/2009:10:51:47
1244098308.458 0.000 85.202.126.3 200 - - 04/Jun/2009:10:51:48
1244098309.622 0.000 94.180.3.134 200 - - 04/Jun/2009:10:51:49
1244098310.002 0.000 93.124.97.77 200 - - 04/Jun/2009:10:51:50
1244098310.601 0.000 80.85.185.144 200 - - 04/Jun/2009:10:51:50
1244098311.196 0.000 92.243.167.96 200 - - 04/Jun/2009:10:51:51
1244098311.254 0.000 85.174.96.206 200 - - 04/Jun/2009:10:51:51
1244098311.752 0.000 91.192.20.10 200 - - 04/Jun/2009:10:51:51
1244098311.981 0.000 81.200.149.4 200 - - 04/Jun/2009:10:51:51
1244098312.006 0.000 195.206.43.10 200 - - 04/Jun/2009:10:51:52
1244098312.507 0.000 80.58.205.45 200 - - 04/Jun/2009:10:51:52
1244098312.569 0.000 94.51.233.120 200 - - 04/Jun/2009:10:51:52
1244098313.140 0.000 92.53.92.81 200 - - 04/Jun/2009:10:51:53
1244098313.270 0.000 80.70.236.45 200 - - 04/Jun/2009:10:51:53
1244098313.486 0.000 91.200.55.28 200 - - 04/Jun/2009:10:51:53
1244098314.004 0.000 79.120.0.168 200 - - 04/Jun/2009:10:51:54
1244098314.097 0.000 77.232.15.242 200 - - 04/Jun/2009:10:51:54
1244098314.536 0.000 95.220.9.101 200 - - 04/Jun/2009:10:51:54
1244098314.856 0.000 89.169.77.22 200 - - 04/Jun/2009:10:51:54
1244098317.472 0.000 194.44.238.38 200 - - 04/Jun/2009:10:51:57
1244098318.030 0.000 95.165.12.16 200 - - 04/Jun/2009:10:51:58
1244098318.042 0.099 91.192.60.34 200 0.099 200 04/Jun/2009:10:51:58
1244098318.174 0.000 217.8.87.211 200 - - 04/Jun/2009:10:51:58
1244098318.962 0.000 92.101.106.188 200 - - 04/Jun/2009:10:51:58
1244098319.475 0.000 95.78.128.37 200 - - 04/Jun/2009:10:51:59
1244098320.192 0.086 95.129.248.46 200 0.086 200 04/Jun/2009:10:52:00
1244098320.614 0.000 81.9.56.61 200 - - 04/Jun/2009:10:52:00
1244098321.667 0.000 88.205.252.233 200 - - 04/Jun/2009:10:52:01
1244098321.913 0.000 95.161.253.133 200 - - 04/Jun/2009:10:52:01
1244098322.635 0.000 93.185.185.8 200 - - 04/Jun/2009:10:52:02
1244098322.904 0.000 188.17.28.127 200 - - 04/Jun/2009:10:52:02
1244098323.454 0.000 95.72.120.214 200 - - 04/Jun/2009:10:52:03
1244098323.604 0.000 79.124.109.5 200 - - 04/Jun/2009:10:52:03

Где нет двух минусов - запросы на бэкенд

В кеше лежит файлик, заголовки которого 
HTTP/1.1 200 OK
Date: Thu, 04 Jun 2009 06:59:37 GMT
Server: Apache
X-Powered-By: PHP/5.2.8-pl2-gentoo
Last-Modified: Thu, 04 Jun 2009 06:59:37 GMT
Expires: Thu, 04 Jun 2009 07:04:37 GMT
Connection: close
Content-Type: text/html; charset=UTF-8

Есть идеи?

-- 
С уважением,
Волков Олег





 




Copyright © Lexa Software, 1996-2009.