Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Не работает proxy_cache_use_stale ?
- To: nginx-ru@xxxxxxxxx
- Subject: Не работает proxy_cache_use_stale ?
- From: Flam Boyant <flamboyant2@xxxxxxxxx>
- Date: Tue, 5 May 2009 17:08:51 +0300
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type; bh=0IgalbVJ4/s/uKr8g5lo2do3HFul4FErzHZ/7NYbizo=; b=aR7vKc0E0R4oLpcQ6LIX1XE1QNCfUwqxcDOWQFHL2BSyIPL46L4in3WWMdR8anF3Zq /uSbDeko9XUI2kxPVyzmBdF6DFj9xc7xOZkjkgokMkpvyk/y8NxKJrWdJtR3Mqy/dIjW ElicJ0n/9XGrpJ35lsl7gpF0REpHAR2y4bwRQ=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=CXxp5il5G0oMY6NG+Pb0fyKmnougZYQwhTxGqfBG0rYIyGYiqsVSFoOeQ0Ex8osiQJ Mo4NhMee8BuKiVUVxjcl9YyHbWEjwY2jXI6uiF89XPKRhO8kujsH5lPbWWfGwa2G50gO ZcZow3bszfY5FskfKOQSmjHu3tpnvaUIjArvg=
Всем привет!
Есть nginx-0.7.54 на Linux, есть желание сделать на нем "перманентный кеш" - то есть если бекенд недоступен, то файл отдается из кеша, даже если он устарел. Конфигурация nginx такая -
worker_processes 4; worker_rlimit_nofile 10240;
error_log logs/error.log; pid logs/nginx.pid;
events { worker_connections 4096;
}
http { include mime.types; default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '"$status/$upstream_status" $body_bytes_sent '
'"$host" "$upstream_addr/$upstream_response_time"';
access_log logs/access.log main;
sendfile on; tcp_nopush on; tcp_nodelay on;
keepalive_timeout 65 20;
client_header_timeout 3m; client_body_timeout 3m; send_timeout 3m;
client_header_buffer_size 4k; large_client_header_buffers 4 4k;
client_max_body_size 1m;
client_body_buffer_size 128k;
output_buffers 4 32k; postpone_output 1460;
proxy_connect_timeout 10; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 128k;
proxy_buffers 4 128k; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k;
gzip off;
proxy_cache_key "$scheme://$host$uri$is_args$args:"; proxy_cache_path /usr/local/nginx/cache levels=1:2 keys_zone=one:10m inactive=20m max_size=500m;
proxy_cache one; proxy_cache_min_uses 1; proxy_cache_valid 200 302 5m; proxy_cache_valid 301 1h; proxy_cache_use_stale error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_ignore_headers X-Accel-Redirect X-Accel-Expires Expires Cache-Control;
set_real_ip_from 127.0.0.1; real_ip_header X-Forwarded-For;
server { listen 9090; server_name localhost;
location / { proxy_pass http://localhost:8000; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr;
} error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } Проверяем - создаем простенький test.cgi, запрашиваем его, убежаемся что файл попал в кеш - тут все ок.
Файл на диске есть - $ find /usr/local/nginx/cache -type f -exec grep "/cgi/test.cgi:" {} \; Binary file /usr/local/nginx/cache/e/aa/5fd721f295024d972798697193182aae matches
$ ls -al /usr/local/nginx/cache/e/aa/5fd721f295024d972798697193182aae -rw------- 1 nobody nobody 322 May 5 16:43 /usr/local/nginx/cache/e/aa/5fd721f295024d972798697193182aae Да и по логам видно - файл отдается из кеша.
192.168.7.6 - - [05/May/2009:16:43:00 +0300] "GET /cgi/test.cgi HTTP/1.0" "200/200" 23 " www.xxx.net" " 127.0.0.1:8000/0.057"
192.168.7.6 - - [05/May/2009:16:46:30 +0300] "GET /cgi/test.cgi HTTP/1.0" "200/-" 23 " www.xxx.net" "-/-" Ломаем test.cgi - чтобы при запросе выдавал 500-ую ошибку.
Пробуем еще раз - все ок - файл отдается из кеша - 192.168.7.6 - - [05/May/2009:16:47:31 +0300] "GET /cgi/test.cgi HTTP/1.0" "200/-" 23 " www.xxx.net" "-/-"
Но у нас еще не истекло время хранения. Ждем 5 минут и пробуем еще раз - То есть несмотря на то что proxy_cache_use_stale прописана обращения к кешу нет - идет обращение на бекенд!
Файл в кеше еще есть - $ find /usr/local/nginx/cache -type f -exec grep "/cgi/test.cgi:" {} \;
Binary file /usr/local/nginx/cache/e/aa/5fd721f295024d972798697193182aae matches $ ls -al /usr/local/nginx/cache/e/aa/5fd721f295024d972798697193182aae -rw------- 1 nobody nobody 322 May 5 16:43 /usr/local/nginx/cache/e/aa/5fd721f295024d972798697193182aae
Просьба ткнуть носом где туплю. Спасибо!
|