Исключить кеширование отдельно взятого файла

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