Исключить кеширование отдельно взятого файла
grigory
nginx-forum на nginx.us
Пн Июн 7 19:18:46 MSD 2010
Добрый день. У меня включено кеширование на сервере, но один скрипт постоянно обращается к серверу через AJAX сотни раз в минуту, и у него каждый раз уникальный url, чтобы браузер не кешировал. Из-за этого в кеше nginx'а возникают тысячи файлов, которые генерируются, по-сути, этими запросами, и в кеше абсолютно не нужны.
Конфиг примерно такой:
===================
...
proxy_cache_path /var/cache/nginx levels= keys_zone=wholepage:50m;
server {
listen 80;
server_name server.com www.server.com;
keepalive_timeout 0;
gzip on;
gzip_min_length 5000;
gzip_proxied any;
gzip_types text/plain text/xml application/xml application/x-javascript text/javascript text/css text/json;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_disable “MSIE [1-6].(?!.*SV1)”;
location / {
proxy_pass http://server.com:8080/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_cache wholepage;
proxy_cache_valid 200 301 302 304 30m;
proxy_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";
proxy_hide_header "Set-Cookie";
proxy_ignore_headers "Cache-Control" "Expires";
root /var/www/virtual/server.com;
}
...
================
Я так понимаю, что мне нужно добавить location в конфиг вроде такого (отключить кеширование у файла find.php):
location ~ ^/find.php {
proxy_cache off;
}
Но из-за этого файл find.php просто перестает работать с ошибкой 405 Not Allowed.
Подскажите, как сделать правильно, что кэш работал как прежде, но исключал find.php.
Заранее спасибо.
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,95531,95531#msg-95531
Подробная информация о списке рассылки nginx-ru