Welcome! Log In Create A New Profile

Advanced

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

June 07, 2010 11:42AM
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@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

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

grigory June 07, 2010 11:18AM

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

hg_04 June 07, 2010 11:21AM

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

Igor Sysoev June 07, 2010 11:42AM

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

grigory June 07, 2010 03:32PM

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

grigory June 07, 2010 07:29PM

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

Oleksandr V. Typlyns'kyi June 07, 2010 06:50PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 307
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready