ПРОЕКТЫ 


  АРХИВ 


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: Исключить кеширование о тдельно взятого файла



On Mon, Jun 07, 2010 at 11:18:46AM -0400, grigory wrote:

> Добрый день. У меня включено кеширование на сервере, но один скрипт постоянно 
> обращается к серверу через 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.

Отвыкаем мыслить регулярными выражениями, достаточно

         location = /find.php {

Вот этот кошмар не нужен:

         proxy_cache_key     
"$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";

Конфигурация выглядит так:
 
         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_set_header   Host             $host;
         proxy_set_header   X-Real-IP        $remote_addr;
         proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

         location / {
             proxy_pass http://server.com:8080;
             proxy_redirect off;

             proxy_cache         wholepage;
             proxy_cache_valid   200 301 302 304 30m;
             proxy_hide_header   "Set-Cookie";
             proxy_ignore_headers   "Cache-Control" "Expires";
         }

         location = /find.php {
             proxy_pass http://server.com:8080;
             proxy_redirect off;
         }

-- 
Игорь Сысоев
http://sysoev.ru

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.